On Tue, Sep 16, 2014 at 4:27 PM, Kaya Saman <kayasa...@gmail.com> wrote:
> I'm not sure what happened but after updating OpenBSD today, then
> updating the installed packages Dansguardian seems to not be working.....
...
> The only error in the logs that I can see is:
>
> dansguardian[11832]: Error polling child process sockets: Invalid argument
> dansguardian[11832]: Error polling child process sockets: Invalid argument

So the error means that poll() is being passed an nfds argument too
large, larger than the process could have open as fds.  It looks like
the code, for some reason I cannot understand, passes poll() a pollfd
structure for each child process...with fd=-1, so that it will be
ignored.  Uh, why?  Why is it passing pollfd structures to the kernel
that it *wants* the kernel to ignore?  It seems that the code could
simply skip over allocating and filling in those pollfd structures and
have the exact same effect.

As for what changed, well, something changed the number of child
processes you're experiencing (load?), or the process fd limit
(RLIMIT_NOFILE) for dansguardian changed.


Philip Guenther

Reply via email to