kern/92785: Using exported filesystem on OS/2 NFS client causes
filesystem freeze
Ulrich Spoerlein
uspoerlein at gmail.com
Thu Dec 28 03:10:18 PST 2006
The following reply was made to PR kern/92785; it has been noted by GNATS.
From: "Ulrich Spoerlein" <uspoerlein at gmail.com>
To: "Kostik Belousov" <kostikbel at gmail.com>
Cc: bug-followup at freebsd.org, "Bruce Evans" <bde at zeta.org.au>
Subject: Re: kern/92785: Using exported filesystem on OS/2 NFS client causes filesystem freeze
Date: Thu, 28 Dec 2006 12:06:49 +0100
On 12/27/06, Kostik Belousov <kostikbel at gmail.com> wrote:
> The better change for UDF:
The change for UDF is needed (panic otherwise) but it is NOT working.
vn_lock() is still called and will panic, as it is locking against
itself:
panic: lockmgr: locking against myself
cpuid = 1
KDB: stack backtrace:
kdb_backtrace(100,c8971780,3002,80,c8971780,...) at kdb_backtrace+0x29
panic(c08904dc,c8971780,0,c090fa80,eaeec7d4,...) at panic+0x114
lockmgr(c8d566b8,3002,c8d566dc,c8971780,eaeec7b4,...) at lockmgr+0x3da
vop_stdlock(eaeec7d4) at vop_stdlock+0x1e
VOP_LOCK_APV(c8d5e800,eaeec7d4) at VOP_LOCK_APV+0x87
vn_lock(c8d56660,1002,c8971780,173,58,...) at vn_lock+0xa8
udf_lookup(eaeec880) at udf_lookup+0x22e
VOP_CACHEDLOOKUP_APV(c8d5e800,eaeec880) at VOP_CACHEDLOOKUP_APV+0x7e
vfs_cache_lookup(eaeec91c) at vfs_cache_lookup+0xb2
VOP_LOOKUP_APV(c8d5e800,eaeec91c) at VOP_LOOKUP_APV+0x87
lookup(eaeecc0c) at lookup+0x456
nfs_namei(eaeecc0c,eaeecb3c,2,c8c31e80,c8c1c1a0,eaeeca24,eaeeca28,eaeeca10,0,eaeeca5c,eaeeca14,c8971780,0,eaeecb3c)
at nfs_namei+0x40e
nfsrv_lookup(c8c18b00,c8c31e80,c8971780,eaeecc98) at nfsrv_lookup+0x1dd
nfssvc_nfsd(c8971780) at nfssvc_nfsd+0x3d9
nfssvc(c8971780,eaeecd04) at nfssvc+0x18c
syscall(3b,3b,3b,1,0,...) at syscall+0x25b
Xint0x80_syscall() at Xint0x80_syscall+0x1f
I'm having trouble with NTFS, too. I created a small image with ntfs3g
(which is known to DTRT most of the time). Accessing this image
locally is working just fine. Exporting and mounting that image from a
Linux box, I can't access this export without crashing the server.
I created files foo, bar and directory test on the image, I mounted
the export to /mnt, yet these commands all fail: stat /mnt/foo, stat
/mnt/bar, and stat /mnt/test. stat /mnt/. is working though! As soon
as I issue a readdir, the NFS server panics.
NB: Locally, this is all working just fine! Here's the backtrace:
panic: vput: null vp
cpuid = 1
KDB: stack backtrace:
kdb_backtrace(100,c8983a80,4000,0,c8983a80,...) at kdb_backtrace+0x29
panic(c089c295,c8c4ba60,9,80,0,...) at panic+0x114
vput(0,948,0,a50,0,...) at vput+0x21
nfsrv_readdirplus(c8be6600,c86f4d00,c8983a80,eaf10c98) at
nfsrv_readdirplus+0xbe8
nfssvc_nfsd(c8983a80) at nfssvc_nfsd+0x3d9
nfssvc(c8983a80,eaf10d04) at nfssvc+0x18c
syscall(3b,3b,3b,1,0,...) at syscall+0x25b
Xint0x80_syscall() at Xint0x80_syscall+0x1f
--- syscall (155, FreeBSD ELF32, nfssvc), eip = 0x280bd1b7, esp =
0xbfbfe91c, ebp = 0xbfbfe938 ---
KDB: enter: panic
[thread pid 76119 tid 100100 ]
Stopped at kdb_enter+0x2b: nop
db> show allpcpu
Current CPU: 1
cpuid = 0
curthread = 0xc8327a80: pid 13 "swi4: clock sio"
curpcb = 0xe6e9bd90
fpcurthread = none
idlethread = 0xc8327780: pid 11 "idle: cpu0"
APIC ID = 0
currentldt = 0x50
spin locks held:
cpuid = 1
curthread = 0xc8983a80: pid 76119 "nfsd"
curpcb = 0xeaf10d90
fpcurthread = none
idlethread = 0xc8327600: pid 10 "idle: cpu1"
APIC ID = 6
currentldt = 0x50
spin locks held:
db> show alllocks
Process 76119 (nfsd) thread 0xc8983a80 (100100)
exclusive sleep mutex Giant r = 0 (0xc09707e0) locked @
/usr/src/sys/nfsserver/nfs_serv.c:3720
db> show lockedvnods
Locked vnodes
db>
Uli
More information about the freebsd-bugs
mailing list