Panic dereferencing p->p_leader during exit1()
Peter Jeremy
peterjeremy at optushome.com.au
Tue Apr 8 01:00:38 PDT 2003
My wife got the following from a system running (effectively)
4.8-RELEASE (I built/installed world just before the kernel version
was updated from 4.8-RC to 4.8-RELEASE). I gather she made a few
attempts to get mozilla to start and then the system panic'd.
According to the crashdump, p->p_leader is NULL but according to
the code, this can never happen. This is a UP Athlon XP-1800
with the kernel built for a K7. Anyone got any ideas?
IdlePTD at phsyical address 0x003a3000
initial pcb at physical address 0x00302ac0
panicstr: page fault
panic messages:
---
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x184
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc015c0dd
stack pointer = 0x10:0xe18ebeb4
frame pointer = 0x10:0xe18ebed8
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 213 (m)
interrupt mask = none
trap number = 12
panic: page fault
syncing disks... 47
done
Uptime: 41s
dumping to dev #ad/0x40001, offset 1017136
dump ata0: resetting devices .. done
511 510 509 508 507 506 505 504 503 502 501 500
...
---
#0 dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
487 if (dumping++) {
(kgdb) where
#0 dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
#1 0xc016429b in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:316
#2 0xc01646d9 in panic (fmt=0xc02baaac "%s")
at /usr/src/sys/kern/kern_shutdown.c:595
#3 0xc02759fb in trap_fatal (frame=0xe18ebe74, eva=388)
at /usr/src/sys/i386/i386/trap.c:974
#4 0xc02756a9 in trap_pfault (frame=0xe18ebe74, usermode=0, eva=388)
at /usr/src/sys/i386/i386/trap.c:867
#5 0xc027524f in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16,
tf_edi = -510718880, tf_esi = -510718880, tf_ebp = -510738728,
tf_isp = -510738784, tf_ebx = 0, tf_edx = -510718880, tf_ecx = 8,
tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -1072316195, tf_cs = 8,
tf_eflags = 66198, tf_esp = 41, tf_ss = -510718880})
at /usr/src/sys/i386/i386/trap.c:466
#6 0xc015c0dd in exit1 (p=0xe18f0c60, rv=41)
at /usr/src/sys/kern/kern_exit.c:190
#7 0xc01661de in sigexit (p=0xe18f0c60, sig=41)
at /usr/src/sys/kern/kern_sig.c:1503
#8 0xc0165f58 in postsig (sig=41) at /usr/src/sys/kern/kern_sig.c:1406
#9 0xc0275e00 in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47,
tf_edi = 114688, tf_esi = 146527456, tf_ebp = -1077943264,
tf_isp = -510738476, tf_ebx = 1187677356, tf_edx = 1187677156,
tf_ecx = 1187677152, tf_eax = 0, tf_trapno = 7, tf_err = 2,
tf_eip = 1187619448, tf_cs = 31, tf_eflags = 642, tf_esp = -1077943324,
tf_ss = 47}) at /usr/src/sys/i386/i386/trap.c:174
#10 0xc0268815 in Xint0x80_syscall ()
#11 0x46c99cf9 in ?? ()
...
(kgdb) up 6
#6 0xc015c0dd in exit1 (p=0xe18f0c60, rv=41)
at /usr/src/sys/kern/kern_exit.c:190
190 if(p->p_leader->p_peers) {
(kgdb) p *p
$1 = {p_procq = {tqe_next = 0x0, tqe_prev = 0xc0318c88}, p_list = {
le_next = 0xe18f0ac0, le_prev = 0xc0318bc0}, p_cred = 0xc1fb28c0,
p_fd = 0xc2060900, p_stats = 0xe18e9cd0, p_limit = 0xc2059900,
p_upages_obj = 0xe18e3f00, p_procsig = 0xc2053040, p_flag = 24580,
p_stat = 2 '\002', p_pad1 = "\000\000", p_pid = 213, p_hash = {
le_next = 0x0, le_prev = 0xc104b354}, p_pglist = {le_next = 0x0,
le_prev = 0xe18f0afc}, p_pptr = 0xe18f0ac0, p_sibling = {le_next = 0x0,
le_prev = 0xe18f0b10}, p_children = {lh_first = 0x0}, p_ithandle = {
callout = 0x0}, p_oppid = 0, p_dupfd = 0, p_vmspace = 0xd477b440,
p_estcpu = 42, p_cpticks = 17, p_pctcpu = 229, p_wchan = 0x0,
p_wmesg = 0xc02985e9 "biord", p_swtime = 11, p_slptime = 0, p_realtimer = {
it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 0,
tv_usec = 0}}, p_runtime = 2935395, p_uu = 0, p_su = 549755813891,
p_iu = 0, p_uticks = 884763262976, p_sticks = 1095216660492,
p_iticks = 549755813888, p_traceflag = 0, p_tracep = 0xa8, p_siglist = {
__bits = {0, 0, 0, 0}}, p_textvp = 0xe18f5e40, p_lock = 0 '\000',
p_oncpu = 0 '\000', p_lastcpu = 0 '\000', p_rqindex = 13 '\r',
p_locks = -377, p_simple_locks = 0, p_stops = 0, p_stype = 0,
p_step = 0 '\000', p_pfsflags = 0 '\000', p_pad3 = "\000", p_retval = {0,
1187677156}, p_sigiolst = {slh_first = 0x0}, p_sigparent = 20,
p_oldsigmask = {__bits = {0, 0, 0, 0}}, p_sig = 0, p_code = 0, p_klist = {
slh_first = 0x0}, p_sigmask = {__bits = {0, 0, 0, 0}}, p_sigstk = {
ss_sp = 0x0, ss_size = 0, ss_flags = 4}, p_priority = 55 '7',
p_usrpri = 55 '7', p_nice = 0 '\000',
p_comm = "mozilla-bin\000\000\000\000\000", p_pgrp = 0xc2048620,
p_sysent = 0xc02c8580, p_rtprio = {type = 1, prio = 0}, p_prison = 0x0,
p_args = 0xc2048500, p_addr = 0xe18e9000, p_md = {md_regs = 0xe18ebfa8},
p_xstat = 0, p_acflag = 16, p_ru = 0xc202b300, p_nthreads = 0,
p_aioinfo = 0xa8, p_wakeup = 0, p_peers = 0x0, p_leader = 0x0, p_asleep = {
as_priority = 0, as_timo = 0}, p_emuldata = 0x20}
(kgdb)
Peter
More information about the freebsd-stable
mailing list