[Top] [All Lists]

ADD 817944 - NFS V3 from IRIX or SUN client hangs XFS file system

To: nb@xxxxxxx
Subject: ADD 817944 - NFS V3 from IRIX or SUN client hangs XFS file system
From: pv@xxxxxxxxxxxxxxxxx (lord@xxxxxxx)
Date: Thu, 15 Mar 2001 08:17:21 -0800 (PST)
Cc: linux-xfs@xxxxxxxxxxx
Reply-to: sgi.bugs.xfs@xxxxxxxxxxxxxxxxx
Sender: owner-linux-xfs@xxxxxxxxxxx
Webexec: webpvupdate,pvincident
Webpv: jen.americas.sgi.com
View Incident: 

 Status : open                         Priority : 1                         
 Assigned Engineer : nb                Submitter : tbd                      
*Modified User : lord                 *Modified User Domain : sgi.com       
*Description :
Exporting an XFS file system on a linux server and using it
NFS V3 server from an Irix or Sun client hangs the XFS directory.

To recreate:
On IRIX machine:
  mkdir /tmp/permit
  mount permit:/mnt_xfs /tmp/permit
  cd /home/daisy08/nettest/tests/nfs/regression
  cp -r sgi.new /tmp/permit/sgi.new
  cd /tmp/permit/sgi.new/special


From: lord@xxxxxxx (BugWorks)
Date: Mar 15 2001 08:17:21AM

Hmmm,,mount -o vers=3 lord:/xfs /tmp/xfs

 uname -a
IRIX64 cxfs1 6.5-overby-grove2-SN0CELLARRAY 03141602 IP27

# mkdir /tmp/xfs# cd /home/daisy08/nettest/tests/nfs/regression
# cp -r sgi.new /tmp/xfs/sgi.new
# cd /tmp/xfs/sgi.new
# ls
Makefile     Testitems    general      runtests     tests.h      unixdos.h
README       basic        getopt.c     server       tests.init
READWIN.txt  domount.c    lock         special      tools

But It hangs in another directory doing ls -lR on the whole
tree. As Russell reported, it appears to hang on a pagebuf lock:

The problem here appears to be the way NFS uses the filldir function,
we call it under all sorts of locks, and it calls back
into xfs again. Almost certainly we are deadlocked on ourself.

Stack traceback for pid 1097
    EBP       EIP         Function(args)
0xc5f7b6c8 0xc01161fa schedule+0x41e (0xc6246e40)
                               kernel .text 0xc0100000 0xc0115ddc 0xc0116410
0xc5f7b6e0 0xc0107a5b __down+0x73
                               kernel .text 0xc0100000 0xc01079e8 0xc0107ab8
           0xc0107c08 __down_failed+0x8 (0xc0196ae8, 0xc6246e40, 0xc61ae820, 
0xc13b2fc0, 0xc5f7b7f8)
                               kernel .text 0xc0100000 0xc0107c00 0xc0107c0c
           0xc02acca6 stext_lock+0x35da
                               kernel .text.lock 0xc02a96cc 0xc02a96cc 
           0xc01969c9 _pagebuf_grab_lock+0x11 (0xc6246e40)
                               kernel .text 0xc0100000 0xc01969b8 0xc01969cc
           0xc0196ae8 _pagebuf_find_lockable_buffer+0x11c (0xc61ae820, 
0xc13b2fc0, 0x3be2f000, 0x0, 0x1000)
                               kernel .text 0xc0100000 0xc01969cc 0xc0196bd0
           0xc0196bff _pagebuf_get_lockable_buffer+0x2f (0xc61ae820, 
0xc13b2fc0, 0x3be2f000, 0x0, 0x1000)
                               kernel .text 0xc0100000 0xc0196bd0 0xc0196cc0
           0xc0192b02 pagebuf_get+0x126 (0xc61ae820, 0x3be2f000, 0x0, 0x1000, 
                               kernel .text 0xc0100000 0xc01929dc 0xc0192c04
           0xc01e5396 xfs_trans_read_buf+0x5e (0xc70eec00, 0x0, 0xc70eed64, 
0x1df178, 0x0)
                               kernel .text 0xc0100000 0xc01e5338 0xc01e5674
           0xc01b9bde xfs_da_do_buf+0x612 (0x0, 0xc6046900, 0x0, 0xc5f7b944)
                               kernel .text 0xc0100000 0xc01b95cc 0xc01b9e64
           0xc01b9ec5 xfs_da_read_buf+0x2d (0x0, 0xc5f7b9d8, 0x0, 0xc01bd5bd, 
                               kernel .text 0xc0100000 0xc01b9e98 0xc01b9ecc
           0xc01bd5bd xfs_dir2_block_lookup_int+0x35 (0xc5f7b9dc, 0xc5f7b9b8, 
                               kernel .text 0xc0100000 0xc01bd588 0xc01bd74c
           0xc01bd4c7 xfs_dir2_block_lookup+0x1b (0xc5f7b9dc)
                               kernel .text 0xc0100000 0xc01bd4ac 0xc01bd588
           0xc01bbcce xfs_dir2_lookup+0xde (0x0, 0xc6046900, 0xc69c0a00, 0x5, 
                               kernel .text 0xc0100000 0xc01bbbf0 0xc01bbd30
           0xc01e633a xfs_dir_lookup_int+0x112 (0x0, 0xc6046918, 0x5, 
0xc69c0a00, 0xc5f7bb30)
                               kernel .text 0xc0100000 0xc01e6228 0xc01e65d0
           0xc01eb2ba xfs_lookup+0xb2 (0xc6046918, 0xc69c0a00, 0xc5f7bb2c, 
0xc5f7bb30, 0x0)
                               kernel .text 0xc0100000 0xc01eb208 0xc01eb358
           0xc01f47f4 linvfs_lookup+0x84 (0xc64629e0, 0xc69c09a0)
                               kernel .text 0xc0100000 0xc01f4770 0xc01f485c
           0xc014246d lookup_hash+0x9d (0xc5f7bb68, 0xc7b968e0)
                               kernel .text 0xc0100000 0xc01423d0 0xc01424c0
           0xc014250f lookup_one+0x4f (0xc257c039, 0xc7b968e0)
                               kernel .text 0xc0100000 0xc01424c0 0xc0142520
           0xc016849e encode_entry+0x1e6 (0xc5f7be9c, 0xc257c039, 0x3, 0x6, 
                               kernel .text 0xc0100000 0xc01682b8 0xc016859c
           0xc01685f4 nfs3svc_encode_entry_plus+0x28 (0xc5f7be9c, 0xc257c039, 
0x3, 0x6, 0x600100)
                               kernel .text 0xc0100000 0xc01685cc 0xc01685fc
           0xc01bc784 xfs_dir2_put_dirent64_uio+0x28 (0xc5f7bcd8)
                               kernel .text 0xc0100000 0xc01bc75c 0xc01bc7a4
           0xc01bd33d xfs_dir2_block_getdents+0x1cd (0x0, 0xc6046900, 
0xc5f7be40, 0xc5f7bd78, 0x0)
                               kernel .text 0xc0100000 0xc01bd170 0xc01bd424
           0xc01bbec3 xfs_dir2_getdents+0x6b (0x0, 0xc6046900, 0xc5f7be40, 
                               kernel .text 0xc0100000 0xc01bbe58 0xc01bbee0
           0xc01ee30a xfs_readdir+0xaa (0xc6046918, 0xc5f7be40, 0xc5f7bd84, 
0xc5f7bd78, 0xc64629e0)
                               kernel .text 0xc0100000 0xc01ee260 0xc01ee340
           0xc01f2889 linvfs_readdir+0xc1 (0xc5f7beb4, 0xc5f7be9c, 0xc01685cc)
                               kernel .text 0xc0100000 0xc01f27c8 0xc01f28b0
           0xc0161053 nfsd_readdir+0xeb (0xc5f7de00, 0xc5f7da04, 0x0, 0x0, 
                               kernel .text 0xc0100000 0xc0160f68 0xc016116c
           0xc016596b nfsd3_proc_readdirplus+0x123 (0xc5f7de00, 0xc5f7dc00, 
                               kernel .text 0xc0100000 0xc0165848 0xc01659a8
           0xc015c1a3 nfsd_dispatch+0xcb (0xc5f7de00, 0xc5fe0014)
                               kernel .text 0xc0100000 0xc015c0d8 0xc015c240
           0xc029eec8 svc_process+0x2ac (0xc688ee20, 0xc5f7de00)
                               kernel .text 0xc0100000 0xc029ec1c 0xc029f160
           0xc015bf4a nfsd+0x1ca
                               kernel .text 0xc0100000 0xc015bd80 0xc015c0d8
           0xc010750f kernel_thread+0x23
                               kernel .text 0xc0100000 0xc01074ec 0xc010751c

# mount -o vers=3 lord:/xfs /tmp/xfs

<Prev in Thread] Current Thread [Next in Thread>