From owner-freebsd-stable Sat Apr 27 16:26:27 1996 Return-Path: owner-stable Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id QAA15322 for stable-outgoing; Sat, 27 Apr 1996 16:26:27 -0700 (PDT) Received: from irbs.irbs.com (irbs.com [199.182.75.129]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id QAA15317 Sat, 27 Apr 1996 16:26:21 -0700 (PDT) Received: (from jc@localhost) by irbs.irbs.com (8.7.5/8.6.6) id TAA00521; Sat, 27 Apr 1996 19:25:47 -0400 (EDT) From: John Capo Message-Id: <199604272325.TAA00521@irbs.irbs.com> Subject: Re: kern/1159: NFS Client hangs in vm_object_terminate() - objtrm To: FreeBSD-gnats-submit@freebsd.org Date: Sat, 27 Apr 1996 19:25:46 -0400 (EDT) Cc: FreeBSD-stable@freebsd.org In-Reply-To: <199604271545.LAA24735@irbs.irbs.com> from John Capo at "Apr 27, 96 11:45:48 am" X-Mailer: ELM [version 2.4ME+ PL11 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-stable@freebsd.org X-Loop: FreeBSD.org Precedence: bulk nfs/nfs_bio.c: 241 bp = nfs_getcacheblk(vp, lbn, bufsize, p); if (!bp) return (EINTR); if ((bp->b_flags & B_CACHE) == 0) { bp->b_flags |= B_READ; not_readin = 0; vfs_busy_pages(bp, 0); error = nfs_doio(bp, cred, p); if (error) { brelse(bp); return (error); } } The buffer returned from nfs_getcacheblk() has B_DONE set in b_flags. nfs_doio() goes off and does its thing but biodone fails with "biodone: buffer already done". bread()/brwrite() always clear (B_DONE | B_ERROR | B_INVAL). They both obtain a buffer from getblk() as does nfs_getcacheblk(). Should nfs_doio() also clear (B_DONE | B_ERROR | B_INVAL)? John Capo jc@irbs.com IRBS Engineering FreeBSD Servers and Workstations (954) 792-9551 Unix/Internet Consulting - ISP Solutions John Capo writes: > > >Number: 1159 > >Category: kern > >Synopsis: NFS Client hangs in vm_object_terminate() - objtrm > >Confidential: no > >Severity: critical > >Priority: medium > >Responsible: freebsd-bugs > >State: open > >Class: sw-bug > >Submitter-Id: current-users > >Arrival-Date: Sat Apr 27 08:50:01 PDT 1996 > >Last-Modified: > >Originator: John Capo > >Organization: > IRBS Engineering > >Release: FreeBSD 2.1-STABLE i386 > >Environment: > > FreeBSD 2.1-stable client and server both built with NFS_ASYNC from > sup around 4/18/96. > > >Description: > > Client hangs while building TeX on an NFS mounted /usr/ports tree: > 0 19496 1 46 -18 0 172 12 objtrm D p1 0:02.91 ../web2c/splitup mf > > Restarting make hangs with this status: > 0 19609 1 41 -18 0 164 12 vodead D p1 0:00.07 ../web2c/splitup mf > > >How-To-Repeat: > > mount server:/usr/ports /usr/ports or somesuch > cd /usr/ports/print/tex > make > > Hangs at: > > cd mf; make SHELL='/bin/sh' CC='gcc' CFLAGS='-g ' RANLIB='ranlib' LN='ln -s' DEFS='' CCLD='gcc' LDFLAGS='-g ' LIBS='' x_extra_libs='' x_include_flags='-I/usr/X11R6/include' x_lib_flags='-L/usr/X11R6/lib' triptrap > /bin/sh ./../mf/convert > > >Fix: > > > > >Audit-Trail: > >Unformatted: >