NFS deadlock

Kris Kennaway kris at
Sat May 8 20:43:16 PDT 2004

I just ran into this on bento: one of the NFS servers was not
responding, so I tried to unmount it.  The unmount stuck in state
nfsfsync, and eventually everything else on the system got stuck in
state ufs.


db> show lockedvnods
Locked vnodes
0xc6010e38: tag ufs, type VDIR, usecount 239, writecount 0, refcount 1, flags (VV_ROOT|VV_OBJBUF), lock type ufs: EXCL (count 1) by thread 0xc77b2690 (pid 64855) with 12 pending
        ino 2, on dev da0s1a (4, 27)
0xc60bc618: tag ufs, type VDIR, usecount 3, writecount 0, refcount 1, flags (VV_OBJBUF), lock type ufs: EXCL (count 1) by thread 0xc89983f0 (pid 62988) with 1 pending
        ino 47731, on dev da0s1a (4, 27)
0xc60bc514: tag ufs, type VDIR, usecount 3, writecount 0, refcount 0, flags (VV_OBJBUF), lock type ufs: EXCL (count 1) by thread 0xc73ad540 (pid 61015) with 1 pending
        ino 47733, on dev da0s1a (4, 27)
0xc68f9b2c: tag nfs, type VREG, usecount 0, writecount 0, refcount 1, flags (VI_XLOCK|VI_BWAIT|VV_OBJBUF), lock type nfs: EXCL (count 1) by thread 0xc712c690 (pid 60978)
        fileid 1080273 fsid 0x400ff02
db> trace 60978
sched_switch(c712c690,2,c06ab58e,13c,ea95e7d5) at sched_switch+0xf5
mi_switch(1,0,c06ad8f3,16e,c712c690) at mi_switch+0x298
sleepq_switch(c68f9b58,178,4d000001,1,1) at sleepq_switch+0x149
sleepq_wait_sig(c68f9b58,0,c06ab58e,f6,0) at sleepq_wait_sig+0x14
msleep(c68f9b58,c68f9b2c,14d,c06b67cc,0) at msleep+0x4de
nfs_flush(c68f9b2c,0,1,c712c690,1) at nfs_flush+0x961
nfs_fsync(e3ebdad4,0,c06b2d53,393,e3ebdad0) at nfs_fsync+0x31
vinvalbuf(c68f9b2c,1,0,c712c690,0) at vinvalbuf+0xff
vclean(c68f9b2c,8,c712c690,e3ebdb94,c0571b48) at vclean+0xad
vgonel(c68f9b2c,c712c690,c06b2d53,8a4,c5de6444) at vgonel+0x61
vflush(c5de6400,1,0,0,8000000) at vflush+0x32d
nfs_unmount(c5de6400,8000000,c712c690,c712c690,0) at nfs_unmount+0x50
dounmount(c5de6400,8000000,c712c690,41e,400ff02) at dounmount+0x224
unmount(c712c690,e3ebdd14,c06c1efb,3e2,2) at unmount+0x24c
syscall(2f,2f,2f,804a9f2,804de04) at syscall+0x2a0
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (22, FreeBSD ELF32, unmount), eip = 0x280c1a5f, esp = 0xbfbfe00c, ebp = 0xbfbfe0c8 ---
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url :

More information about the freebsd-fs mailing list