Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Apr 1996 16:30:03 -0700 (PDT)
From:      John Capo <jc@irbs.com>
To:        freebsd-bugs
Subject:   Re: kern/1159: NFS Client hangs in vm_object_terminate() - objtrm
Message-ID:  <199604272330.QAA15584@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/1159; it has been noted by GNATS.

From: John Capo <jc@irbs.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc: FreeBSD-stable@freebsd.org
Subject: Re: kern/1159: NFS Client hangs in vm_object_terminate() - objtrm
Date: Sat, 27 Apr 1996 19:25:46 -0400 (EDT)

 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:
 > 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199604272330.QAA15584>