From owner-freebsd-current Wed Jul 7 8:40:32 1999 Delivered-To: freebsd-current@freebsd.org Received: from cygnus.rush.net (cygnus.rush.net [209.45.245.133]) by hub.freebsd.org (Postfix) with ESMTP id ADE0514E76 for ; Wed, 7 Jul 1999 08:40:18 -0700 (PDT) (envelope-from bright@rush.net) Received: from localhost (bright@localhost) by cygnus.rush.net (8.9.3/8.9.3) with SMTP id LAA29553; Wed, 7 Jul 1999 11:46:13 -0400 (EDT) Date: Wed, 7 Jul 1999 10:46:12 -0500 (EST) From: Alfred Perlstein To: Peter Wemm Cc: current@FreeBSD.ORG Subject: Re: nfs ick in -current In-Reply-To: <19990707145022.6829E78@overcee.netplex.com.au> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Wed, 7 Jul 1999, Peter Wemm wrote: > Alfred Perlstein wrote: > > > > I just cvsup'd today hoping that all the NFS fixes that went in > > recently would have alleviated (sp?) the hangs I've been getting > > while building things in ports for the last couple of months. > > > > It used to be that just NFS would hang, now it seems to crash the > > entire box. > > > > server:/vol/extra/ports /usr/ports nfs rw,noauto,bg,intr,nfsv3,tcp,- > r=3 > > 2768,-w=32768 0 0 > > server:/vol/extra/ncvs /home/ncvs nfs rw,noauto,bg,intr,nfsv3,tcp,- > r=3 > > 2768,-w=32768 0 0 > > server:/vol/wd0 /vol/wd0 nfs rw,noauto,bg,intr,nfsv3,tcp,- > r=3 > > 2768,-w=32768 0 0 > > > > are the mount points. > > > > attempting to compile xscreensaver has triggered it twice in a row > > /usr/ports is mounted off "server" (a freebsd -current box) and > > doing the make will kill the machine. > > > > Once I figure out where the heck I have the console redirected > > I'll have something more substantial. > > You have a block size of 32K, I'll bet it's 'Bad nfs svc reply' in > nfs_syscalls.c. This is triggered when the READDIRPLUS op generates > an oversized reply and it triggers the sanity check. odd, shouldn't it know not to violate its own sanity checks? Just throttle down the requests, or spit out an error? > Change it to 16K and I think it'll work. Otherwise change the panic to a > printf(), but that is sweeping the problem under the carpet and might just > give the client indigestion. It does stop the server crashing though. I'll try that, thanks, set my -r and -w to 16k. Um something odd though, from the code: if (siz <= 0 || siz > NFS_MAXPACKET) { printf("mbuf siz=%d\n",siz); panic("Bad nfs svc reply"); } then earlier: nfsproto.h:#define NFS_MAXPKTHDR 404 nfsproto.h:#define NFS_MAXPACKET (NFS_MAXPKTHDR + NFS_MAXDATA) nfsproto.h:#define NFS_MAXDATA 32768 isn't 32k within the safe limits, or sometimes when building the RPC reply it can just get too big? Oh, one more thing, I'm getting "device busy" even when using -f during my unmount of wedged nfs mounts, all I needed to do was kill -9 a shell sitting in that dir, but shouldn't that be unnessesary? thanks for your patience, -Alfred To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message