On Mon, Jun 12, 2023 at 11:56:43PM +0300, Vitaliy Makkoveev wrote: > On Mon, Jun 12, 2023 at 09:04:41PM +0200, Why 42? The lists account. wrote: > > > > On Wed, Jun 07, 2023 at 03:50:29PM +0300, Vitaliy Makkoveev wrote: > > > > ... > > > > Please, share your dvmrpd.conf. > > > > > > > > > > Also, you could try to use ktrace to provide some additional info. > > > > > > Hi Again, > > > > On site I had to power cycle the ThinkPad to be able to get control. > > > > The contents of the dvmrpd config file should be visible here: > > dvmrpd.conf+ifconfig.jpg https://paste.c-net.org/SlimeReply > > > > In order to be able to show progress, I tried using "mrouted" instead. > > It seems to have resulted in much the same panic. > > So apparently the problem may not specific to dvmrpd. > > Maybe something related to the USB Ethernet adaptor? I see some > > references to both "ure" and "usb" in the stack traces ... > > > > See for example: > > mrouted_panic.jpg https://paste.c-net.org/YolandaSamir > > ddb_show_panic+trace.jpg https://paste.c-net.org/TrackParent > > ddbcpu0+1.jpg https://paste.c-net.org/HansonAinsley > > ddbcpu3+4+5.jpg https://paste.c-net.org/MidtermsComposer > > ddbcpu6+7.jpg https://paste.c-net.org/CostaScratchy > > > > Sorry about all the photos, it was the best I could do. I'm driving the > > system via a pretty rubbish KVM switch. > > > > Hope this helps with the analysis. In the meantime I'll look around for > > some other multicast routing solution. > > > > Cheers, > > Robb. > > > > We have missing kernel lock around (*if_sysctl)(). Diff below should fix > it.
OK bluhm@ > Index: sys/netinet/ip_mroute.c > =================================================================== > RCS file: /cvs/src/sys/netinet/ip_mroute.c,v > retrieving revision 1.138 > diff -u -p -r1.138 ip_mroute.c > --- sys/netinet/ip_mroute.c 19 Apr 2023 20:03:51 -0000 1.138 > +++ sys/netinet/ip_mroute.c 12 Jun 2023 20:55:05 -0000 > @@ -718,7 +718,9 @@ add_vif(struct socket *so, struct mbuf * > satosin(&ifr.ifr_addr)->sin_len = sizeof(struct sockaddr_in); > satosin(&ifr.ifr_addr)->sin_family = AF_INET; > satosin(&ifr.ifr_addr)->sin_addr = zeroin_addr; > + KERNEL_LOCK(); > error = (*ifp->if_ioctl)(ifp, SIOCADDMULTI, (caddr_t)&ifr); > + KERNEL_UNLOCK(); > if (error) > return (error); > }