View Incident:
http://co-op.engr.sgi.com/BugWorks/code/bwxquery.cgi?search=Search&wlong=1&view_type=Bug&wi=817944
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
.....
==========================
ADDITIONAL INFORMATION (ADD)
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
0xc02b0200
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,
0x2205)
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
[0]more>
0xc01b9ec5 xfs_da_read_buf+0x2d (0x0, 0xc5f7b9d8, 0x0, 0xc01bd5bd,
0x0)
kernel .text 0xc0100000 0xc01b9e98 0xc01b9ecc
0xc01bd5bd xfs_dir2_block_lookup_int+0x35 (0xc5f7b9dc, 0xc5f7b9b8,
0xc5f7b9bc)
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,
0xc5f7badc)
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,
0x600100)
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)
[0]more>
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,
0xc5f7bd78)
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,
0xc01685cc)
kernel .text 0xc0100000 0xc0160f68 0xc016116c
0xc016596b nfsd3_proc_readdirplus+0x123 (0xc5f7de00, 0xc5f7dc00,
0xc5f7da00)
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
|