Re: rev. 1.94 of netinet/in.c broke CARP
- From: Max Laier <max@xxxxxxxxxxxxxx>
- Date: Thu, 25 Jan 2007 22:33:10 +0100
On Thursday 25 January 2007 22:23, Gleb Smirnoff wrote:
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.
pfsync might, but from a quick glance at this thread and code it seems
non-related. I'll look more closely later.
--
/"\ Best regards, | mlaier@xxxxxxxxxxx
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier@EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
Attachment:
pgpBV7G2aPCGW.pgp
Description: PGP signature
- References:
- rev. 1.94 of netinet/in.c broke CARP
- From: Gleb Smirnoff
- Re: rev. 1.94 of netinet/in.c broke CARP
- From: Robert Watson
- Re: rev. 1.94 of netinet/in.c broke CARP
- From: Gleb Smirnoff
- rev. 1.94 of netinet/in.c broke CARP
- Prev by Date: Re: rev. 1.94 of netinet/in.c broke CARP
- Next by Date: Re: rev. 1.94 of netinet/in.c broke CARP
- Previous by thread: Re: rev. 1.94 of netinet/in.c broke CARP
- Next by thread: Re: rev. 1.94 of netinet/in.c broke CARP
- Index(es):
Relevant Pages
- Re: rev. 1.94 of netinet/in.c broke CARP
... the right fix is that CARP needs to have a handler for ... R> ifnet destruction
that always runs before the multicast address garbage ... CARP will always have released
its multicast address before they ... (freebsd-net) - Re: rev. 1.94 of netinet/in.c broke CARP
... the right fix is that CARP needs to have a handler for ... R> ifnet destruction
that always runs before the multicast address garbage ... CARP will always have released
its multicast address before they ... (freebsd-net) - Re: rev. 1.94 of netinet/in.c broke CARP
... R>>R> ifnet destruction that always runs before the multicast address
garbage ... CARP will always have released its multicast address before ... Is adding
a generic GC function a correct way or was it better to just fix ... (freebsd-net) - Re: rev. 1.94 of netinet/in.c broke CARP
... The real fix for netinet is to do what netinet6 does; that is, refcount the memberships
and keep them in a list, rather than a vector. ... Unfortunately, due to how CARP works,
two bugs were fixed at the expense of introducing another. ... Call multicast cleanup,
if we are destroying carp interface itself. ... Resource allocation and free for CARP runs along
two separate paths; the case where a member interface is detached cannot be considered the same as when
CARP itself is detaching, ... (freebsd-net) - rev. 1.94 of netinet/in.c broke CARP
... that revision 1.94 of in.c has broke CARP. ... of all multicast instances
and deletes all the instances, ... ifconfig vlan0 destroy ... (freebsd-net)