On Thu, May 25, 2017 at 14:54 +0200, Sebastien Marie wrote: > On Thu, May 25, 2017 at 01:14:54PM +0200, Mike Belopuhov wrote: > > > > > > Sorry I didn't test it: I had understood that due the problem was due to > > > my (unsupported) use of fq on pppoe0, so I just skipped it (the > > > backtrace of the panic passed by sppp_ functions). > > > > > > > We still need to solve the issue and commit the fix so please run with > > it and report if something goes bad. I've been running with this diff > > for about a week and haven't had any issues. > > > > I ran with it now. >
Thanks. > > > > > > # pfctl -sq > > > pfctl: DIOCGETQSTATS: Bad file descriptor > > > > > > (and same error with systat queue). > > > > > > > Yes, this is a side effect of using pf kifs in the queueing code. > > This issue has been there since the beginning. Claudio has recently > > pointed out that we should probably resolve it. The problem here is > > that you have specified a nonexistent interface name for your queue. > > For instance you have loaded a pf ruleset with "queue foo on pppoe0" > > before creating pppoe0 itself. This will result in a successful > > application of the ruleset but queues won't be created. > > > > So please make sure that your "ifconfig" output corresponds to the > > pf.conf and you *don't* get a 'DIOCGETQSTATS: Bad file descriptor'. > > This is an indictaion that your queues are not created or some of > > them are not created. > > I had a typo in my interface name... once corrected it works better :) > sorry for the noise. > > > Claudio has also suggested aborting when a queue is to be created > > on a non-exitent interface > > the diff works as expected: I couldn't create anymore a queue for a > non-existing interface. > > note it is still possible to make the system enter in inconsistent state > (and getting DIOCGETQSTATS error) by creating the queue, and next > removing the interface (ifconfig pppoe0 destroy). > Good point, but unless someone steps in and adds proper support for this we're unable to protect users from running into this situation. FYI, sys/net/pf_if.c is the code handling dynamic interfaces for pf. > Thanks. > -- > Sebastien Marie
