[Bug 196259] The NFSv4 server can deadlock when vfs.nfsd.enable_locallocks!=0

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Dec 24 23:26:22 UTC 2014


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196259

Rick Macklem <rmacklem at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|New                         |In Progress

--- Comment #1 from Rick Macklem <rmacklem at FreeBSD.org> ---
Loic Blot had a deadlock in the NFSv4 server when he had
set vfs.nfsd.enable_locallocks to the non-default value of 1.
This deadlock is caused by a LOR between the sleep lock used
by the NFSv4 server (nfsrv_locklf()) and relocking of the file's
vnode.

I will be committing a patch to fix this LOR into head and
MFCing it to stable/10 and stable/9.

The deadlock is avoided by leaving vfs.nfsd.enable_locallocks=0,
which should be fine for most NFSv4 server uses.
(vfs.nfsd.enable_locallocks=1 makes the NFSv4 server do
 VOP_ADVLOCK() to acquire locks on the file, so that non-nfsd
 threads running in the NFSv4 server machine see the byte range
 locks set by NFSv4 clients that have mounted the file system.
 If only NFS clients needs to see the locks, the default setting
 is fine.)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list