I'm running aserve on SBCL 0.8.7.45. The server seems to
sometimes lose worker threads. The http-accept-thread
function adds a socket for an incoming connection to a
worker thread's run reasons;
(acl-compat.mp:process-add-run-reason (car workers)
sock)
is called.
However, sometimes the worker thread never wakes up.
It has revoked the previous run reason in the past (I
have a debug print for that), but never seems to get the
new one.
The result is that the requesting client is never served
(the connection is open, but inactive) and the
corresponding worker thread never gets another run
reason (because (acl-compat.mp:process-run-reasons
(car workers)) is not null).
Logged In: NO
Version of the portableaserve is the cvs version of
2004-02-12.
Logged In: YES
user_id=12159
This sounds like a race condition somewhere in the sbcl thread code.
I've mostly copied this from sbcl-specific code in the McCLIM project, but
haven't load-tested it yet. It's possible I made a mistake in the run-
reason code.
Please submit bug reports to the mailing list; I only saw this one by
accident, as I don't visit the paserve project site very often, and haven't
yet found an option to be sent new bug reports automatically.