Date: Fri, 26 Jan 2007 00:23:10 +0300 From: Gleb Smirnoff <glebius@FreeBSD.org> To: Robert Watson <rwatson@FreeBSD.org> Cc: "Bruce M. Simpson" <bms@FreeBSD.org>, net@FreeBSD.org Subject: Re: rev. 1.94 of netinet/in.c broke CARP Message-ID: <20070125212310.GG7922@cell.sick.ru> In-Reply-To: <20070125203807.S13293@fledge.watson.org> References: <20070125162422.GA7922@bestcom.ru> <45B8EB23.705@FreeBSD.org> <20070125183720.GB7922@cell.sick.ru> <20070125203807.S13293@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 25, 2007 at 08:40:52PM +0000, Robert Watson wrote: R> Architecturally, the right fix is that CARP needs to have a handler for R> ifnet destruction that always runs before the multicast address garbage R> collection. I'm pretty preoccupied for the next few days due to an R> impending paper deadline, so can't investigate further currently, but one R> way or the other that ordering dependency needs to be expressed. If done R> properly, CARP will always have released its multicast address before they R> are forceably removed. Having the reference count is good too, but what I R> describe should be sufficient regardless of the refcount. This means removing usage of EVENTHANDLER(9) and going back to exporting carp_ifdetach() and calling it directly from if_detach(). This is back out revision 1.255 of net/if.c. Not sure what is a right way... I am worried about that CARP is not the only subsystem in kernel that can join a multicast group on an ifnet, and keep a pointer to the multicast instance. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070125212310.GG7922>