Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 May 1999 15:40:02 -0700 (PDT)
From:      Bob Willcox <bob@luke.pmr.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/10872: Panic in sorecieve()
Message-ID:  <199905112240.PAA82948@freefall.freebsd.org>

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

From: Bob Willcox <bob@luke.pmr.com>
To: Pierre Beyssac <beyssac@enst.fr>
Cc: Bob Willcox <bob@pmr.com>, freebsd-bugs@freebsd.org,
	FreeBSD-gnats-submit@freebsd.org
Subject: Re: kern/10872: Panic in sorecieve()
Date: Tue, 11 May 1999 17:30:19 -0500

 Well, I can easily recreate the panic with -current as of this morning.
 I tried the "maxusers 128" change and that did not help.  I have
 attached a slightly modified test shell script that I have been using.
 
 I run this shell script on three other systems simultaneously, all
 writing to the same SCSI disk on the test system (this sort of simulates
 amanda activity with multiple systems all dumping to the holding disk).
 As I mentioned in an earlier note, these systems are all connected
 together via a 100mbps full-duplex switching hub.  Two of them are
 running 3.1-stable and the other is running 2.2.8-release.
 
 I run the tests simultaneously on the three systems as follows:
 
 On obiwan:
 ./panic_test 5 10000 lando /stuff/tmp/obiwan
 
 On deathstar:
 ./panic_test 5 10000 lando /stuff/tmp/deathstar
 
 On luke:
 ./panic_test 5 10000 lando /stuff/tmp/luke
 
 (I've got kind of a Star Wars theme going here)
 
 Usually within about 5 minutes lando panics.  Note that I have built
 lando's kernel with the options INVARIANTS and INVARIANT_SUPPORT.  If
 you don't, you'll still get a panic (sbdrop) but it will occur later on
 during the close of the socket instead of the "receive 1" panic due to
 the KASSERT() that we've been talking about.
 
 One more thing...I never got low on mbufs prior to the panic.
 
 Thanks,
 Bob
 
 On Tue, May 11, 1999 at 07:53:11PM +0200, Pierre Beyssac wrote:
 > On Tue, May 11, 1999 at 12:41:17PM -0500, Bob Willcox wrote:
 > > fix).  The problem as I have seen it is that the mbuf chain pointer (m)
 > > is NULL and so_rcv.sb_cc is not zero.  Its as though somewhere either
 > > the mbuf chain pointer gets zapped with NULL or something fails to
 > 
 > This can happen when the system is out of mbufs. Sadly there are
 > many places in the kernel where the condition is not trapped at
 > all.
 > 
 > How many mbufs does netstat -m report on your system? Maybe I
 > couldn't reproduce it because my kernel is configured with maxusers
 > 128, which yields more mbufs. You can try that as a temporary fix.
 > 
 > > properly update so_rcv.sb_cc as mbufs are processed.
 > > 
 > > I believe one can expand the KASSERT macro and rewrite the line:
 > > 	if (m == 0 && so->so_rcv.sb_cc != 0)
 > 
 > Oops, you're right. I stupidly looked at so_snd.sb_cc in the debug
 > output, which is 0.
 > 
 > I prefer that, it'll probably be easier to fix.
 > -- 
 > Pierre Beyssac		pb@enst.fr
 
 -- 
 Bob Willcox             The man who follows the crowd will usually get no
 bob@luke.pmr.com        further than the crowd.  The man who walks alone is
 Austin, TX              likely to find himself in places no one has ever
                         been.            -- Alan Ashley-Pitt
 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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