Skip site navigation (1)Skip section navigation (2)
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>