From owner-freebsd-current Thu Oct 3 1:43:12 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 97CB437B401; Thu, 3 Oct 2002 01:43:10 -0700 (PDT) Received: from salmon.maths.tcd.ie (salmon.maths.tcd.ie [134.226.81.11]) by mx1.FreeBSD.org (Postfix) with SMTP id 574C043E6E; Thu, 3 Oct 2002 01:43:09 -0700 (PDT) (envelope-from iedowse@maths.tcd.ie) Received: from walton.maths.tcd.ie by salmon.maths.tcd.ie with SMTP id ; 3 Oct 2002 09:43:08 +0100 (BST) To: Robert Watson Cc: Don Lewis , current@FreeBSD.ORG Subject: Re: NFS hang on rmdir(2) with 5.0-current client, server In-Reply-To: Your message of "Thu, 03 Oct 2002 02:03:22 EDT." Date: Thu, 03 Oct 2002 09:43:02 +0100 From: Ian Dowse Message-ID: <200210030943.aa86349@salmon.maths.tcd.ie> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG In message , Robe rt Watson writes: >> > It looks like the client is basically hung waiting for an RPC response. >> > I'd be glad to provide more debugging information if someone can point me >> > in the right direction. >> >> I haven't seen this seen this problem with a 5.0-CURRENT client and a >> 4.7-PRERELEASE server, so as near as I can tell the client side isn't >> totally hosed. > >Interesting observation: rm on files, and rmdir on empty directories >doesn't trigger it, but attempt to rmdir on a non-empty directory does. This an NFSv2 mount, and I think the problem is specific to NFSv2. Something like the following patch should fix it. I probably missed this in revision 1.112 when fixing some similar issues in other server op functions. See the commit message for that revision for further details. Ian Index: nfs_serv.c =================================================================== RCS file: /dump/FreeBSD-CVS/src/sys/nfsserver/nfs_serv.c,v retrieving revision 1.123 diff -u -r1.123 nfs_serv.c --- nfs_serv.c 25 Sep 2002 02:39:39 -0000 1.123 +++ nfs_serv.c 3 Oct 2002 08:30:49 -0000 @@ -2905,10 +2905,9 @@ if (dirp) diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td); nfsm_reply(NFSX_WCCDATA(v3)); - if (v3) { + error = 0; + if (v3) nfsm_srvwcc_data(dirfor_ret, &dirfor, diraft_ret, &diraft); - error = 0; - } /* fall through */ nfsmout: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message