Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Sep 2005 20:19:28 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
Cc:        Yar Tikhiy <yar@comp.chem.msu.su>, freebsd-current@freebsd.org
Subject:   Re: 6.0BETA3 panic in ip_output (vlan/RIP related?)
Message-ID:  <20050903201628.D88940@fledge.watson.org>
In-Reply-To: <1125594635.63101.3.camel@buffy.york.ac.uk>
References:  <1125487485.34476.6.camel@buffy.york.ac.uk> <20050831134927.GA20529@comp.chem.msu.su> <1125594635.63101.3.camel@buffy.york.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 1 Sep 2005, Gavin Atkinson wrote:

>> Thanks for reporting this!  The problem seems known and has to do with 
>> a deficiency in our multicast code WRT interface removal/re-insertion. 
>> It is on the to-do list of our networking gurus and hopefully will be 
>> dealt with RSN, after IP multicast code locking and cleanup are 
>> complete.
>
> It's good to hear that the problem is understood, however it seems that 
> this panic is trivial to recreate for anyone running routed, and 
> therefore 6.0-RELEASE may well be unusable for me.  I've just got this 
> second panic from the same machine which looks like it may also be 
> related to the multicast code.

I believe I've chatted with Gleb about this some, but want to confirm that 
I understand the problem here: this occurs when an interface is removed 
while IP multicast membership is still present for multicast groups on the 
interface.  When the multicast socket is closed, then the kernel panics 
because it has a now invalid cached pointer to the interface structure 
(now freed), which cases an assertion failure because the mutex code 
detects that it is operating on an invalid mutex.

So it sounds like we need to figure out how the multicast code should 
behave on interface removal -- I wonder what other operating systems do 
here?  Do they simply invalidate current membership related with the 
interface, or do they leave the multicast sockets in a state such that if 
the interface comes back, the memberships are re-bound?

Robert N M Watson



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