Date: Fri, 17 Aug 2018 11:34:30 -0700 From: Matthew Macy <mmacy@freebsd.org> To: "Andrey V. Elsukov" <bu7cher@yandex.ru> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r337866 - in head/sys: net netinet netinet6 Message-ID: <CAPrugNpbJHmt-Y66AqYcuap_JRkKvb0SfBM_FWbP0EnXNwWoew@mail.gmail.com> In-Reply-To: <79ad414a-3e8e-3abd-0a8a-4d61b9ccfb4f@yandex.ru> References: <201808152023.w7FKN9LL055254@repo.freebsd.org> <79ad414a-3e8e-3abd-0a8a-4d61b9ccfb4f@yandex.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Sorry. I'll take a look. On Fri, Aug 17, 2018 at 05:30 Andrey V. Elsukov <bu7cher@yandex.ru> wrote: > On 15.08.2018 23:23, Matt Macy wrote: > > Author: mmacy > > Date: Wed Aug 15 20:23:08 2018 > > New Revision: 337866 > > URL: https://svnweb.freebsd.org/changeset/base/337866 > > > > Log: > > Fix in6_multi double free > > > > This is actually several different bugs: > > - The code is not designed to handle inpcb deletion after interface > deletion > > - add reference for inpcb membership > > - The multicast address has to be removed from interface lists when > the refcount > > goes to zero OR when the interface goes away > > - decouple list disconnect from refcount (v6 only for now) > > - ifmultiaddr can exist past being on interface lists > > - add flag for tracking whether or not it's enqueued > > - deferring freeing moptions makes the incpb cleanup code simpler but > opens the > > door wider still to races > > - call inp_gcmoptions synchronously after dropping the the inpcb lock > > > > Fundamentally multicast needs a rewrite - but keep applying band-aids > for now. > > > > Tested by: kp > > Reported by: novel, kp, lwhsu > > > > Modified: > > head/sys/net/if.c > > head/sys/net/if_var.h > > head/sys/netinet/in_mcast.c > > head/sys/netinet/in_pcb.c > > head/sys/netinet/ip_carp.c > > head/sys/netinet6/in6_ifattach.c > > head/sys/netinet6/in6_mcast.c > > head/sys/netinet6/in6_var.h > > head/sys/netinet6/mld6.c > > Hi, > > After this commit my test machine panics just after boot finishes. > Reverting this commit helps. > Machine has two interfaces in failover lagg. One interface is not > connected. > > FreeBSD 12.0-ALPHA2 (GENERIC) #2 r337961M: Fri Aug 17 14:54:48 MSK 2018 > > # ifconfig > em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 > > options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> > ether 00:22:4d:6a:5e:b9 > media: Ethernet autoselect > status: no carrier > nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> > re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 > > options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE> > ether 00:22:4d:6a:5e:b9 > hwaddr 1c:bd:b9:de:0d:7d > media: Ethernet autoselect (1000baseT <full-duplex>) > status: active > nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> > lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 > > options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> > ether 00:22:4d:6a:5e:b9 > inet6 fe80::222:4dff:fe6a:5eb9%lagg0 prefixlen 64 scopeid 0x5 > inet 10.9.8.6 netmask 0xffffff00 broadcast 10.9.8.255 > laggproto failover lagghash l2,l3,l4 > laggport: em0 flags=1<MASTER> > laggport: re0 flags=4<ACTIVE> > groups: lagg > media: Ethernet autoselect > status: active > nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> > > -- > WBR, Andrey V. Elsukov >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPrugNpbJHmt-Y66AqYcuap_JRkKvb0SfBM_FWbP0EnXNwWoew>