Subject: Re: Rebooting on a 5000
To: Michael L. Hitch <mhitch@lightning.oscs.montana.edu>
From: Kent Vander Velden <graphix@iastate.edu>
List: port-pmax
Date: 04/01/1997 18:13:32
> On Apr  1,  4:29am, Kent Vander Velden wrote:
> > 
> >   With a march 29 kernel, the 5000 that I have it installed on
continues to
> > reboot once in a while with the following message:
> > 
> > Apr  1 00:03:36 thumb syslogd: restart
> > Apr  1 00:03:37 thumb /netbsd: free vnode: type VDIR, usecount -2,
writecount 0, refcount 12,
> > Apr  1 00:03:37 thumb /netbsd:  tag VT_UFS, ino 22185, on dev 21, 3
(LOCKED)
> > Apr  1 00:03:37 thumb /netbsd:  owner pid 111
> > Apr  1 00:03:37 thumb /netbsd: panic: free vnode isn't
> > Apr  1 00:03:37 thumb /netbsd: syncing disks... 5 5 1 done
> > 
> >   Anyone have any insight into it's cause?
> 
>   My first guess is that your filesystem has been corrupted.  Do an fsck
-f
> on each of your disk partitions to make sure the filesystems are OK. 
Other
> than that, I don't know what might be causing it.  The panic is because
the
> usecount is non-zero on a free vnode (and even worse, it's negative).  I
> don't recall ever seeing this on any of the DECstations I've been working
> on.

  Fsck did not report any problems.  The information that is listed here is
very interesting.  I found the file that is the inode that is mentioned in
the information.  It is a directory that contains a LOT of files.  All
these files had really odd owners.  I have since set the owners of these
files to root.  When I say really odd, perhaps I should instead say really
high... perhaps MAX_INT?  Also, there are only too programs that use these
files.  One program can read and write to them while the other can only
read.  The program that can read/write does some funky stuff with mmap()
while the program that only reads simply reads with read().  The pid and
the files that are involved suggests either of these programs is a great
possibility.  Is there anything else that I should be aware of?  If the
machine crashes again, I will rework the read/write program so that it does
not use mmap() and instead only write() and see what difference that makes.

  Thanks.