panic: igmp_v3_dispatch_general_query: called when version 2

Bruce Simpson bms at incunabulum.net
Sat May 30 02:26:14 UTC 2009


deeptech71 at gmail.com wrote:
> ...
> Heh. How does that relate to the kernel code assigning a v3 handler to 
> a v2 packet? (Looks something like that to me.)

There is a potential race in the treatment of how older querier 
compatibility is implemented, and it is to do with the treatment of the 
link timers.

I caught this in the MLDv2 respin. It would seem that the panic you saw 
can be attributed to this. It didn't help that the RFC was not 
especially clear on when to transition back to v1 in the presence of a 
v1 querier -- so I'm assuming that to be compliant with MLDv2, this 
happens only when the 'Older Querier Present' timer expires, and not 
before. Same goes for IGMPv3 viz IGMPv2.

I nearly had a fix for the issue this afternoon, but have been 
distracted due to meetings and other commitments. I'll try to get a fix 
out in the next few days.

Of course, one of my hopes for this project was that automated 
regression testing of new net* code could be pushed into the tree, and 
this would have caught the problem you saw -- but because of the 8.x 
serial port regression, I wasn't able to rely on the automated 
regression test.

thanks,
BMS


More information about the freebsd-current mailing list