xfs
[Top] [All Lists]

ADD 797419 - xfs_iget goes recursive and dies a horrible death

To: lord@xxxxxxx
Subject: ADD 797419 - xfs_iget goes recursive and dies a horrible death
From: pv@xxxxxxxxxxxxx (ananth@xxxxxxxxxxxx)
Date: Sat, 26 Aug 2000 17:20:50 -0700 (PDT)
Cc: linux-xfs@xxxxxxxxxxx
Reply-to: sgi.bugs.xfs@xxxxxxxxxxxxxxxxx
Sender: owner-linux-xfs@xxxxxxxxxxx
Webexec: webpvupdate,pvincident
Webpv: sgigate.sgi.com
View Incident: 
http://co-op.engr.sgi.com/BugWorks/code/bwxquery.cgi?search=Search&wlong=1&view_type=Bug&wi=797419

 Status : open                         Priority : 1                         
 Assigned Engineer : lord              Submitter : lord                     
*Modified User : ananth               *Modified User Domain : engr          
*Description :
xfs_iget has some conditions where it can end up recalling itself,
this is allowed for, but there are cases in there where two threads
are looking up the same inode which it does not cope with, the end
result is usually this:

xfs_iget_core: ambiguous vns: vp/0xc3012b00, invp/0xc22c1800
Unable to handle kernel NULL pointer dereference at virtual address 00000008
 printing eip:
c889c115
*pde = 00000000

.....


==========================
ADDITIONAL INFORMATION (ADD)
From: ananth@engr (BugWorks)
Date: Aug 26 2000 05:20:48PM
==========================


It doesn't appear that the xfs_iget call has to be
recursive for this bug to happen. On my 2P 64MB box
with kiocluster option on mount, and running dbench
48 clients, I can get the system to panic fairly
often. Here's one of the instances:

-------------------
.Unable to handle kernel NULL pointer dereference at virtual address 00000008
 printing eip:
c01b7ddb
*pde = 00000000

Entering kdb (0xc2124000) on processor 1 Panic: Oops
due to panic @ 0xc01b7ddb
eax = 0x00000080 ebx = 0x00a08701 ecx = 0x00a08701 edx = 0x00000000 
esi = 0xc206eac0 edi = 0xc2f505d0 esp = 0xc2125ce0 eip = 0xc01b7ddb 
ebp = 0x00000000  ss = 0x00000018  cs = 0x00000010 eflags = 0x00010282 
 ds = 0x00000018  es = 0x00000018 origeax = 0xffffffff &regs = 0xc2125cac
[1]kdb> bt
    EBP       EIP         Function(args)
           0xc01b7ddb vn_revalidate+0x1f (0xc206eac0, 0x80)
                               kernel .text 0xc0100000 0xc01b7dbc 0xc01b7e74
           0xc018d8f0 xfs_iget_core+0x77c (0x0, 0xc38b6400, 0x0, 0xa08701, 0x0)
                               kernel .text 0xc0100000 0xc018d174 0xc018d918
           0xc018d94a xfs_iget+0x32 (0xc38b6400, 0x0, 0xa08701, 0x0, 0x0)
                               kernel .text 0xc0100000 0xc018d918 0xc018d954
           0xc01a40ac xfs_dir_lookup_int+0x154 (0x0, 0xc2262078, 0x5, 
0xc09fefa0, 0xc2125ed0)
                               kernel .text 0xc0100000 0xc01a3f58 0xc01a4240
           0xc01a89d7 xfs_lookup+0x97 (0xc2262078, 0xc09fefa0, 0xc2125ecc, 
0xc2125ed0, 0x0)
                               kernel .text 0xc0100000 0xc01a8940 0xc01a8a40
           0xc01b1540 linvfs_lookup+0x84 (0xc09c6040, 0xc09fef40)
                               kernel .text 0xc0100000 0xc01b14bc 0xc01b1594
           0xc013aad7 real_lookup+0x77 (0xc0dbc3e0, 0xc2125f30, 0x4)
                               kernel .text 0xc0100000 0xc013aa60 0xc013ab80
           0xc013af6b path_walk+0x27b (0xc087401e, 0xc2125f8c)
                               kernel .text 0xc0100000 0xc013acf0 0xc013b590
           0xc013bc6f open_namei+0xcb (0xc0874000, 0x243, 0x180, 0xc2125f8c)
                               kernel .text 0xc0100000 0xc013bba4 0xc013c150
           0xc012f1a7 filp_open+0x3b (0xc0874000, 0x242, 0x180)
                               kernel .text 0xc0100000 0xc012f16c 0xc012f1c8
           0xc012f4e2 sys_open+0x36 (0xbffffc74, 0x242, 0x180, 0x242, 0x804a085)
                               kernel .text 0xc0100000 0xc012f4ac 0xc012f574
[1]more> 
           0xc0108f90 system_call+0x34
                               kernel .text 0xc0100000 0xc0108f5c 0xc0108f94
------------------

ananth.

<Prev in Thread] Current Thread [Next in Thread>
  • ADD 797419 - xfs_iget goes recursive and dies a horrible death, ananth@xxxxxxxxxxxx <=