[issue1730] pkgsrc BIND asserts under load, kqueue-related?

Samuel J. Greear (via DragonFly issue tracker) sinknull at leaf.dragonflybsd.org
Thu Apr 15 09:20:08 PDT 2010


Samuel J. Greear <sjg at evilcode.net> added the comment:

BIND is queuing socket operations (read/write), marking them as queued, but then
not filtering ready events (from kqueue/poll/select) that would result in a
second queued operation and then asserting when they catch it just prior to
queueing (in dispatch_recv() in this case, but it is also possible for it to
happen in dispatch_send()). Raising the number of FD events,
ISC_SOCKET_MAXEVENTS may work around this in our kevent case.

A possible fix might be to change the INSIST()'s in dispatch_send/recv() to if
(sock->pending_recv) return;, but I have not tested this.

There is an underlying bug here and we should re-file this upstream.

_____________________________________________________
DragonFly issue tracker <bugs at lists.dragonflybsd.org>
<http://bugs.dragonflybsd.org/issue1730>
_____________________________________________________






More information about the Bugs mailing list