Date: Sat, 15 Jun 2002 17:17:11 +0300 From: Atanas Bachvaroff <nasko@nove.bg> To: freebsd-stable@FreeBSD.ORG Subject: Fatal trap 12 in FreeBSD 4.6-RC/3 Jun 2002 Message-ID: <3D0B4C67.B64E9DB0@nove.bg>
next in thread | raw e-mail | index | archive | help
Hello. I got FreeBSD 4.6-RC (source from 3rd Jun) panicked yesterday. Here is some call trace information. As I see the problem is somewhere in the ufs/ffs inode hash code (somehow the ufs hash table got corrupted). My filesystems are with softupdates on (and I've heard some rumors from friends about FreeBSD panicking with similar symptoms). I have never debugged/played with the fs kernel subsystem so I ask for help. I can grand shell access on my machine to those who wish to help. Thanks in advance. ------------------------------------------------------------- Script started on Sat Jun 15 16:53:14 2002 sigbus# gdb -k --core=vmcore.0 /usr/src/sys/compile/HOST/kernel.debug GNU gdb 4.18 (FreeBSD) Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or 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. This GDB was configured as "i386-unknown-freebsd"... IdlePTD at phsyical address 0x0045c000 initial pcb at physical address 0x003a3880 panicstr: page fault panic messages: --- Fatal trap 12: page fault while in kernel mode fault virtual address = 0xffff0039 fault code = supervisor read, page not present instruction pointer = 0x8:0xc0277c94 stack pointer = 0x10:0xd0332ca4 frame pointer = 0x10:0xd0332cb4 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 = 21403 (man) interrupt mask = none trap number = 12 panic: page fault syncing disks... 7 done Uptime: 4d15h39m12s dumping to dev #ad/0x20001, offset 917504 dump ata0: resetting devices .. done 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 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 dumpsys () at ../../kern/kern_shutdown.c:487 487 if (dumping++) { (kgdb) where #0 dumpsys () at ../../kern/kern_shutdown.c:487 #1 0xc0186dbf in boot (howto=256) at ../../kern/kern_shutdown.c:316 #2 0xc01871e4 in poweroff_wait (junk=0xc0342aac, howto=-1070324273) at ../../kern/kern_shutdown.c:595 #3 0xc02f260e in trap_fatal (frame=0xd0332c64, eva=4294901817) at ../../i386/i386/trap.c:966 #4 0xc02f22e1 in trap_pfault (frame=0xd0332c64, usermode=0, eva=4294901817) at ../../i386/i386/trap.c:859 #5 0xc02f1e9f in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16, tf_edi = -895094784, tf_esi = 1814483, tf_ebp = -801952588, tf_isp = -801952624, tf_ebx = -860794624, tf_edx = -895328256, tf_ecx = -802887232, tf_eax = -65535, tf_trapno = 12, tf_err = 0, tf_eip = -1071154028, tf_cs = 8, tf_eflags = 66178, tf_esp = -860794624, tf_ss = -892395264}) at ../../i386/i386/trap.c:458 #6 0xc0277c94 in ufs_ihashget (dev=0xcaa5f000, inum=1814483) at ../../ufs/ufs/ufs_ihash.c:108 #7 0xc0275192 in ffs_vget (mp=0xcaa58200, ino=1814483, vpp=0xd0332d4c) at ../../ufs/ffs/ffs_vfsops.c:1077 #8 0xc02789e9 in ufs_lookup (ap=0xd0332dac) at ../../ufs/ufs/ufs_lookup.c:611 #9 0xc027d7c5 in ufs_vnoperate (ap=0xd0332dac) at ../../ufs/ufs/ufs_vnops.c:2422 #10 0xc01af85e in vfs_cache_lookup (ap=0xd0332e04) at vnode_if.h:77 #11 0xc027d7c5 in ufs_vnoperate (ap=0xd0332e04) at ../../ufs/ufs/ufs_vnops.c:2422 ---Type <return> to continue, or q <return> to quit--- #12 0xc01b2731 in lookup (ndp=0xd0332e80) at vnode_if.h:52 #13 0xc01b222c in namei (ndp=0xd0332e80) at ../../kern/vfs_lookup.c:153 #14 0xc01b7df1 in stat (p=0xd024e9c0, uap=0xd0332f80) at ../../kern/vfs_syscalls.c:1787 #15 0xc02f28bd in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = -1077936988, tf_esi = 134532816, tf_ebp = -1077939508, tf_isp = -801951788, tf_ebx = -1077939460, tf_edx = 24, tf_ecx = -1077939612, tf_eax = 188, tf_trapno = 0, tf_err = 2, tf_eip = 671809140, tf_cs = 31, tf_eflags = 647, tf_esp = -1077939632, tf_ss = 47}) at ../../i386/i386/trap.c:1167 #16 0xc02e3625 in Xint0x80_syscall () #17 0x804b06d in ?? () #18 0x804b667 in ?? () #19 0x8049359 in ?? () #20 0x8049151 in ?? () (kgdb) up 6 #6 0xc0277c94 in ufs_ihashget (dev=0xcaa5f000, inum=1814483) at ../../ufs/ufs/ufs_ihash.c:108 108 for (ip = INOHASH(dev, inum)->lh_first; ip; ip = ip->i_hash.le_n ext) { (kgdb) disass ufs_ihashget Dump of assembler code for function ufs_ihashget: 0xc0277c5c <ufs_ihashget>: push %ebp 0xc0277c5d <ufs_ihashget+1>: mov %esp,%ebp 0xc0277c5f <ufs_ihashget+3>: sub $0x4,%esp 0xc0277c62 <ufs_ihashget+6>: push %edi 0xc0277c63 <ufs_ihashget+7>: push %esi 0xc0277c64 <ufs_ihashget+8>: push %ebx 0xc0277c65 <ufs_ihashget+9>: mov 0x8(%ebp),%edi 0xc0277c68 <ufs_ihashget+12>: mov 0xc(%ebp),%esi 0xc0277c6b <ufs_ihashget+15>: mov 0xc0399410,%eax 0xc0277c70 <ufs_ihashget+20>: mov %eax,0xfffffffc(%ebp) 0xc0277c73 <ufs_ihashget+23>: push %edi 0xc0277c74 <ufs_ihashget+24>: call 0xc017b210 <minor> 0xc0277c79 <ufs_ihashget+29>: add %esi,%eax 0xc0277c7b <ufs_ihashget+31>: and 0xc03ab6b4,%eax 0xc0277c81 <ufs_ihashget+37>: mov 0xc03ab6b0,%edx 0xc0277c87 <ufs_ihashget+43>: mov (%edx,%eax,4),%eax 0xc0277c8a <ufs_ihashget+46>: add $0x4,%esp 0xc0277c8d <ufs_ihashget+49>: test %eax,%eax 0xc0277c8f <ufs_ihashget+51>: je 0xc0277cc3 <ufs_ihashget+103> 0xc0277c91 <ufs_ihashget+53>: lea 0x0(%esi),%esi 0xc0277c94 <ufs_ihashget+56>: cmp 0x38(%eax),%esi 0xc0277c97 <ufs_ihashget+59>: jne 0xc0277cbc <ufs_ihashget+96> 0xc0277c99 <ufs_ihashget+61>: cmp 0x34(%eax),%edi ---Type <return> to continue, or q <return> to quit--- 0xc0277c9c <ufs_ihashget+64>: jne 0xc0277cbc <ufs_ihashget+96> 0xc0277c9e <ufs_ihashget+66>: mov 0x28(%eax),%ebx 0xc0277ca1 <ufs_ihashget+69>: mov 0xfffffffc(%ebp),%eax 0xc0277ca4 <ufs_ihashget+72>: push %eax 0xc0277ca5 <ufs_ihashget+73>: push $0x10002 0xc0277caa <ufs_ihashget+78>: push %ebx 0xc0277cab <ufs_ihashget+79>: call 0xc01b449c <vget> 0xc0277cb0 <ufs_ihashget+84>: add $0xc,%esp 0xc0277cb3 <ufs_ihashget+87>: test %eax,%eax 0xc0277cb5 <ufs_ihashget+89>: jne 0xc0277c73 <ufs_ihashget+23> 0xc0277cb7 <ufs_ihashget+91>: mov %ebx,%eax 0xc0277cb9 <ufs_ihashget+93>: jmp 0xc0277cc5 <ufs_ihashget+105> 0xc0277cbb <ufs_ihashget+95>: nop 0xc0277cbc <ufs_ihashget+96>: mov 0x20(%eax),%eax 0xc0277cbf <ufs_ihashget+99>: test %eax,%eax 0xc0277cc1 <ufs_ihashget+101>: jne 0xc0277c94 <ufs_ihashget+56> 0xc0277cc3 <ufs_ihashget+103>: xor %eax,%eax 0xc0277cc5 <ufs_ihashget+105>: lea 0xfffffff0(%ebp),%esp 0xc0277cc8 <ufs_ihashget+108>: pop %ebx 0xc0277cc9 <ufs_ihashget+109>: pop %esi 0xc0277cca <ufs_ihashget+110>: pop %edi 0xc0277ccb <ufs_ihashget+111>: leave 0xc0277ccc <ufs_ihashget+112>: ret End of assembler dump. (kgdb) sigbus# exit Script done on Sat Jun 15 16:54:14 2002 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D0B4C67.B64E9DB0>