Date: Sun, 31 May 1998 18:37:18 -0400 From: "Stephane E. Potvin" <sepotvin@videotron.ca> To: current@FreeBSD.ORG Subject: Softded panic Message-ID: <3571DB9E.2C392372@videotron.ca>
next in thread | raw e-mail | index | archive | help
Got the following panic trying to run a make release on my system FreeBSD alexis.videotron.ca 3.0-CURRENT FreeBSD 3.0-CURRENT #0: Sat May 30 16:53:12 EDT 1998 rubik@alexis.videotron.ca:/mnt/.2/FreeBSD/src/sys/compile/ALEXIS i386 Pentium 166Mhz, 32M RAM Here is the panic information: GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.16 (i386-unknown-freebsd), Copyright 1996 Free Software Foundation, Inc... IdlePTD 225000 initial pcb at 1ffb04 panicstr: handle_written_inodeblock: live inodedep panic messages: --- panic: handle_written_inodeblock: live inodedep syncing disks... Fatal trap 12: page fault while in kernel mode fault virtual address = 0x30 fault code = supervisor read, page not present instruction pointer = 0x8:0xf013183e stack pointer = 0x10:0xf01efdc4 frame pointer = 0x10:0xf01efdd0 = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = Idle interrupt mask = bio trap number = 12 panic: page fault dumping to dev 20001, offset 196608 dump 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 --- #0 boot (howto=260) at ../../kern/kern_shutdown.c:281 281 dumppcb.pcb_cr3 = rcr3(); (kgdb) bt #0 boot (howto=260) at ../../kern/kern_shutdown.c:281 #1 0xf01160c6 in panic (fmt=0xf01c221f "page fault") at ../../kern/kern_shutdown.c:421 #2 0xf01c2e6d in trap_fatal (frame=0xf01efd88) at ../../i386/i386/trap.c:879 #3 0xf01c2900 in trap_pfault (frame=0xf01efd88, usermode=0) at ../../i386/i386/trap.c:772 #4 0xf01c255f in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = 0, tf_esi = -1073168320, tf_ebp = -266404400, tf_isp = -266404432, tf_ebx = -248261952, tf_edx = -1073168320, tf_ecx = -266404376, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -267184066, tf_cs = 8, tf_eflags = 66118, tf_esp = -248261952, tf_ss = -248261872}) at ../../i386/i386/trap.c:396 #5 0xf013183e in flushdirtybuffers (slpflag=0, slptimeo=0) at ../../kern/vfs_bio.c:1254 #6 0xf0130853 in bdwrite (bp=0xf133d2c0) at ../../kern/vfs_bio.c:512 #7 0xf0196841 in ffs_update (vp=0xf3242020, access=0xf01efe70, modify=0xf01efe70, waitfor=0) at ../../ufs/ffs/ffs_inode.c:132 #8 0xf019ee52 in ffs_sync (mp=0xf06c9800, waitfor=2, cred=0xf06c1e00, p=0xf0219088) at ../../ufs/ffs/ffs_vfsops.c:999 #9 0xf01393e3 in sync (p=0xf0219088, uap=0x0) at ../../kern/vfs_syscalls.c:517 #10 0xf0115cab in boot (howto=256) at ../../kern/kern_shutdown.c:203 #11 0xf01160c6 in panic ( fmt=0xf019ba03 "handle_written_inodeblock: live inodedep") at ../../kern/kern_shutdown.c:421 #12 0xf019bccf in handle_written_inodeblock (inodedep=0xf087ea80, bp=0xf1317040) at ../../ufs/ffs/ffs_softdep.c:3240 #13 0xf019b4bb in softdep_disk_write_complete (bp=0xf1317040) at ../../ufs/ffs/ffs_softdep.c:2921 #14 0xf0132626 in biodone (bp=0xf1317040) at ../../kern/vfs_bio.c:1917 #15 0xf01e5411 in wdintr (unit=0) at ../../i386/isa/wd.c:1419 (kgdb) frame 12 #12 0xf019bccf in handle_written_inodeblock (inodedep=0xf087ea80, bp=0xf1317040) at ../../ufs/ffs/ffs_softdep.c:3240 3240 panic("handle_written_inodeblock: live inodedep" ); (kgdb) print *inodedep $1 = {id_list = {wk_list = {le_next = 0xf08c8e80, le_prev = 0xf1317164}, wk_type = 1, wk_state = 13}, id_hash = {le_next = 0x0, le_prev = 0xf06ddc6c}, id_fs = 0xf06ee800, id_ino = 318372, id_nlinkdelta = 0, id_savedino = 0x0, id_deps = {le_next = 0xf0d71b80, le_prev = 0xf0c08c58}, id_buf = 0x0, id_savedsize = 0xffffffffffffffff, id_pendinghd = {lh_first = 0xf0803260}, id_bufwait = {lh_first = 0x0}, id_inowait = {lh_first = 0x0}, id_inoupdt = {tqh_first = 0x0, tqh_last = 0xf087eac4}, id_newinoupdt = {tqh_first = 0x0, tqh_last = 0xf087eacc}} (kgdb) print (struct diradd) *inodedep->id_pendinghd->lh_first $2 = {da_list = {wk_list = {le_next = 0x0, le_prev = 0xf087eab8}, wk_type = 10, wk_state = 32781}, da_pdlist = {le_next = 0xf08c4d40, le_prev = 0xf082b8ac}, da_offset = 60, da_newinum = 318372, da_un = { dau_previous = 0xf0bf3a00, dau_pagedep = 0xf0bf3a00}} Seems that a directory buffer hit the disk before the associated inode. LIST_FIRST(&inodedep->id_pendinghd) != NULL when trying to free the inodedep after the buffer had been written to disk. If I'm completely wrong feel free to laugh but please point me where I'm mistaken. Is there a paper somewhere with more detailed informations on the inner working of softupdates? Regards Stephane E. Potvin POS and Industry Helpdesk IBM Cadana Ltd. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3571DB9E.2C392372>