panic possibly related to soft updates? (4.8-STABLE, Jun 12 2003)
Ben Pfountz
netprince at vt.edu
Thu Jun 12 21:57:13 PDT 2003
Hello list,
I have been fighting this problem for a few days now. I have changed memory
and opened the case and monitored for heat. I have been getting the same
panic about every 12 to 24 hours. I can let the system sit idle, or run it
under a heavy load (cpu and disk), but the panics dont seem to be related to
system load. It looks to me like a dangling pointer in
softdep_update_inodeblock, but I am not very experienced in this area.
The panics started recently when I was rewriting my firewall, so I suspected
a bug in IPFW. The debug info below makes me think that the bug is related
to softupdates.
The panic is always a 'fatal trap 12'. The fault virtual address, fault
code, code segment, processor eflags, and interupt mask is always the same.
I am not sure about the pointers.
Any suggestions? I can run more debug commands or whatever is helpful.
Thanks in advance.
Ben
debuging information follows...
# uname -a
FreeBSD digitalpimp.princenet 4.8-STABLE FreeBSD 4.8-STABLE #1: Thu Jun 12
14:13:23 EDT 2003
root at digitalpimp.princenet:/usr/src/sys/compile/PIMPIN48 i386
panic message:
IdlePTD at phsyical address 0x0040c000
initial pcb at physical address 0x00353c40
panicstr: from debugger
panic messages:
---
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0xffff000a
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc02639dc
stack pointer = 0x10:0xd7508c10
frame pointer = 0x10:0xd7508c10
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 = 9579 (ksh)
interrupt mask = bio
panic: from debugger
(kgdb) where
#0 dumpsys () at ../../kern/kern_shutdown.c:487
#1 0xc01779fb in boot (howto=260) at ../../kern/kern_shutdown.c:316
#2 0xc0177e01 in panic (fmt=0xc02dc3a4 "from debugger")
at ../../kern/kern_shutdown.c:595
#3 0xc01362a1 in db_panic (addr=-1071236644, have_addr=0, count=-1,
modif=0xd7508a7c "") at ../../ddb/db_command.c:435
#4 0xc0136241 in db_command (last_cmdp=0xc0328598, cmd_table=0xc03283d8,
aux_cmd_tablep=0xc034e738) at ../../ddb/db_command.c:333
#5 0xc0136306 in db_command_loop () at ../../ddb/db_command.c:457
#6 0xc0138443 in db_trap (type=12, code=0) at ../../ddb/db_trap.c:71
#7 0xc02af742 in kdb_trap (type=12, code=0, regs=0xd7508bd0)
at ../../i386/i386/db_interface.c:158
#8 0xc02bcce4 in trap_fatal (frame=0xd7508bd0, eva=4294901770)
at ../../i386/i386/trap.c:969
#9 0xc02bc9bd in trap_pfault (frame=0xd7508bd0, usermode=0, eva=4294901770)
at ../../i386/i386/trap.c:867
#10 0xc02bc563 in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16, tf_edi =
0,
tf_esi = -1035120640, tf_ebp = -682587120, tf_isp = -682587140,
tf_ebx = -65536, tf_edx = -1033958784, tf_ecx = -65536,
tf_eax = -1033958784, tf_trapno = 12, tf_err = 0, tf_eip
= -1071236644,
tf_cs = 8, tf_eflags = 66071, tf_esp = -682587088, tf_ss
= -1071220514})
at ../../i386/i386/trap.c:466
#11 0xc02639dc in worklist_remove (item=0xffff0000)
at ../../ufs/ffs/ffs_softdep.c:467
---Type <return> to continue, or q <return> to quit---
#12 0xc02678de in softdep_update_inodeblock (ip=0xc24d5000, bp=0xcc94aeb0,
waitfor=0) at ../../ufs/ffs/ffs_softdep.c:3847
#13 0xc026281d in ffs_update (vp=0xd73baa80, waitfor=0)
at ../../ufs/ffs/ffs_inode.c:106
#14 0xc0262b2c in ffs_truncate (vp=0xd73baa80, length=0, flags=0,
cred=0xc25f5c00, p=0xd7409220) at ../../ufs/ffs/ffs_inode.c:201
#15 0xc0270d52 in ufs_setattr (ap=0xd7508dfc) at
../../ufs/ufs/ufs_vnops.c:509
#16 0xc02734dd in ufs_vnoperate (ap=0xd7508dfc)
at ../../ufs/ufs/ufs_vnops.c:2376
#17 0xc01acaba in vn_open (ndp=0xd7508ec8, fmode=1026, cmode=420)
at vnode_if.h:305
#18 0xc01a8a2c in open (p=0xd7409220, uap=0xd7508f80)
at ../../kern/vfs_syscalls.c:1029
#19 0xc02bcfc5 in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47,
tf_edi = -1077938272, tf_esi = -1077938292, tf_ebp = -1077938272,
tf_isp = -682586156, tf_ebx = 134953192, tf_edx = 1537, tf_ecx = 0,
tf_eax = 5, tf_trapno = 12, tf_err = 2, tf_eip = 134734140, tf_cs =
31,
tf_eflags = 659, tf_esp = -1077938460, tf_ss = 47})
at ../../i386/i386/trap.c:1175
#20 0xc02b0615 in Xint0x80_syscall ()
#21 0x8052da3 in ?? ()
#22 0x8052f87 in ?? ()
#23 0x80535a3 in ?? ()
#24 0x8053c34 in ?? ()
---Type <return> to continue, or q <return> to quit---
#25 0x8052e16 in ?? ()
#26 0x8052f87 in ?? ()
#27 0x80534c6 in ?? ()
#28 0x80534c6 in ?? ()
#29 0x805c9e1 in ?? ()
#30 0x805c59e in ?? ()
#31 0x8048141 in ?? ()
(kgdb) up 11
#11 0xc02639dc in worklist_remove (item=0xffff0000)
at ../../ufs/ffs/ffs_softdep.c:467
467 panic("worklist_remove: lock not held");
(kgdb) p lk.lkt_held
$1 = 9579
(kgdb) p lk
$2 = {lkt_spl = 0, lkt_held = 9579}
(kgdb) p item
$3 = (struct worklist *) 0x0
(I restarted kgdb here to run 'up 12')
(kgdb) up 12
#12 0xc02678de in softdep_update_inodeblock (ip=0xc24d5000, bp=0xcc94aeb0,
waitfor=0) at ../../ufs/ffs/ffs_softdep.c:3847
3847 WORKLIST_REMOVE(wk);
(kgdb) p wk
$1 = (struct worklist *) 0x68c460
(kgdb) p *wk
Cannot access memory at address 0x68c460.
end of debug messages.
-----
Ben Pfountz
B.S. Computer Science
Computer Systems Engineer, Center for Power Electronic Systems
More information about the freebsd-stable
mailing list