Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 29 Dec 1995 12:02:27 +0100 (MET)
From:      grog@lemis.de (Greg Lehey)
To:        hackers@freebsd.org (FreeBSD Hackers)
Subject:   Memory leak in -current NFS code?
Message-ID:  <199512291102.MAA05014@allegro.lemis.de>

next in thread | raw e-mail | index | archive | help
In the past couple of days, I've had three cases of the network
hanging with the message "No buffer space available".  In each cases,
I've had to reboot the system.  If anybody can help me debug this
problem, I'd be grateful.

Here's what happens:

A week or so ago, my source disk died on me, and I have cross-mounted
the sources on allegro, a BSD/386 1.1 box.  During the night, I run a
number of cron jobs:

- On freebie, the FreeBSD box, I have a job which extracts the cvs
  updates and rebuilds the software.

- On allegro, the BSD/386 box, I have a cleanup job which does a
  backup of all the network.  

Until the day before yesterday, everything worked well.  I had a
separate backup on freebie because the additional disk space made it
impossible to get everything on one disk.  The day before yesterday I
added freebie to the list of the network backups.  When I got up
yesterday morning, I found that freebie had hung itself up with buffer
space problems.  The backup (tar cf - / | rsh allegro dd of=$TAPE) had
not written any significant quantity of data to tape (tar t on allegro
showed no data, just an error), and the rebuild was hanging on a
network request.  On the console I had the message

Dec 28 04:47:37 freebie /kernel.std: nfs send error 55 for server allegro.lemis.de:/home

Today exactly the same thing happened, as far as I can tell at the
same time.  I used ddb to take a dump (BTW, what's the correct way to
do that?  There doesn't seem to be an instruction to do this, so I
trashed callfree).  On dumping, I had a significant number of
unflushed buffers, which may have something to do with the problem.

During the morning, while I was still trying to rebuild -current, it
happened *again*, this time without any help from the backup
routines.  allegro is quite busy continuing with its interrupted
cleanup, and I suspect that the problem might be dropped packets which
don't get cleaned up.  FWIW, freebie:/ and freebie:/cdrom are
cross-mounted on allegro, and I can't unmount them because allegro
claims they're busy--I think this is a BSD/386 NFS problem which
occurs after any timeout on an NFS request.

If anybody could give me a few pointers in the code or data
structures, I'd be grateful.  I know my way round kernel code pretty
well, but I don't know much about the network implementation.

Greg



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