Received: by oss.sgi.com id ; Thu, 15 Mar 2001 08:18:56 -0800 Received: from sgi.SGI.COM ([192.48.153.1]:34871 "EHLO sgi.com") by oss.sgi.com with ESMTP id ; Thu, 15 Mar 2001 08:18:38 -0800 Received: from info.engr.sgi.com ([192.26.80.216]) by sgi.com (980327.SGI.8.8.8-aspam/980304.SGI-aspam: SGI does not authorize the use of its proprietary systems or networks for unsolicited or bulk email from the Internet.) via ESMTP id IAA05323; Thu, 15 Mar 2001 08:17:25 -0800 (PST) mail_from (nobody@info.engr.sgi.com) Received: (from nobody@localhost) by info.engr.sgi.com (SGI-8.9.3/8.9.3) id IAA79460; Thu, 15 Mar 2001 08:17:21 -0800 (PST) Date: Thu, 15 Mar 2001 08:17:21 -0800 (PST) Message-Id: <200103151617.IAA79460@info.engr.sgi.com> X-Pv-Incident: 817944 webPV: jen.americas.sgi.com webExec: webpvupdate,pvincident Reply-To: sgi.bugs.xfs@fido.engr.sgi.com From: pv@odin.corp.sgi.com (lord@sgi.com) Subject: ADD 817944 - NFS V3 from IRIX or SUN client hangs XFS file system To: nb@sgi.com Cc: linux-xfs@oss.sgi.com Sender: owner-linux-xfs@oss.sgi.com Precedence: bulk Return-Path: X-Orcpt: rfc822;linux-xfs-outgoing 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@sgi.com (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