[hunchentoot-devel] Race condition in stop

Faré fahree at gmail.com
Mon Mar 11 21:55:50 UTC 2013


When we stop an acceptor, we set the stop flag then shutdown the
taskmaster. But the acceptor will only stop accepting after timeout
and/or after the next connection; in the latter case, said connection
will find itself without a taskmaster to process it, and will be
dropped on the floor without being processed, while possibly leaking a
file descriptor, meanwhile the user on the other end waits 5 minutes
for a TCP timeout. That's not very nice, especially if stop is a
normal part of frequent server rollouts.

To make things better, we could do one or both of these:
1- have the acceptor call the shutdown on the taskmaster after it
catches its last request (or lack thereof).
2- have the acceptor use select or poll, so it can be notified of the
stop in a timely fashion.

Would you accept a patch that does one or the other? What libraries
are or aren't OK to pull into hunchentoot to achieve the second? [I
suppose, any library that doesn't require linking a .so wrapper.]

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
The hacker: someone who figured things out and made something cool happen.
        — Alan Schmitt




More information about the Tbnl-devel mailing list