Subject: kern/26209: processes accessing NFS partitions hang in vnlock
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <marcotte@panix.com>
List: netbsd-bugs
Date: 07/08/2004 21:46:57
>Number:         26209
>Category:       kern
>Synopsis:       processes accessing NFS partitions hang in vnlock
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jul 08 21:48:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Brian Marcotte
>Release:        2.0_BETA
>Organization:
Public Access Networks, Corp.
>Environment:
NetBSD 1.6-2.0_Beta as of June 28, 2004.
>Description:
Under some circumstances, processes accessing files over NFS will hang in "vnlock" and never return. Once this happens, new processes accessing the same NFS filesystem will immediately hang in "vnlock" as well.

It's possible that these PRs are the same problem: 20325 20646 and 12151.

>How-To-Repeat:
It's difficult to repeat, but I can reliable reproduce the problem on my web servers. It usually takes 2-10 hours for this to happen.

If desired, I can test any proposed pullups on my web servers first.

>Fix:
This was fixed in -current as of sometime in April 2004. I also verified that it still works in -current as of July 6, 2004. I was able to fix it in 2.0_BETA by updating these files:

-/* $NetBSD: kern_descrip.c,v 1.123 2004/01/07 09:26:29 jdolecek Exp$*/
+/* $NetBSD: kern_descrip.c,v 1.124 2004/04/05 10:10:29 yamt Exp $  */
-/* $NetBSD: namei.h,v 1.34 2003/09/11 17:33:43 christos Exp $      */
+/* $NetBSD: namei.h,v 1.35 2004/04/05 10:20:52 yamt Exp $  */
-/* $NetBSD: nfs_node.c,v 1.73 2004/03/12 16:52:37 yamt Exp $       */
+/* $NetBSD: nfs_node.c,v 1.75 2004/04/05 10:44:09 yamt Exp $       */
-/* $NetBSD: nfs_var.h,v 1.42 2003/07/23 13:52:25 yamt Exp $        */
+/* $NetBSD: nfs_var.h,v 1.43 2004/04/05 10:44:09 yamt Exp $        */
-/* $NetBSD: nfs_vnops.c,v 1.186 2004/03/12 16:52:37 yamt Exp $     */
+/* $NetBSD: nfs_vnops.c,v 1.191 2004/04/05 10:44:09 yamt Exp $     */
-/* $NetBSD: nfsm_subs.h,v 1.34 2004/03/19 13:52:07 yamt Exp $      */
+/* $NetBSD: nfsm_subs.h,v 1.36 2004/04/05 10:41:45 yamt Exp $      */
-/* $NetBSD: vfs_cache.c,v 1.54 2003/09/01 12:13:55 yamt Exp $      */
+/* $NetBSD: vfs_cache.c,v 1.55 2004/04/05 10:20:52 yamt Exp $      */

Someone who knows the NFS code better should, of course, look at this. It's likely there are newer versions of the above files which should be pulled into 2.0 instead.


>Release-Note:
>Audit-Trail:
>Unformatted: