When using daemon mode on FreeBSD all requests hang.
This is occurring because FreeBSD is stricter in its thread implementation and
treats as an error an
attempt to unlock a thread mutex that was locked in a different thread. This
causes code in
mod_wsgi using a condition variable and where mutex was setup in a parent
thread to fail, but due
to lack of complete error checking this was actually seen as success. This
meant multiple threads
would enter accept() on listener socket at the same time and cause conflict
with each other with
none able to properly accept new connection. As a result, no connections were
being accepted and
requests would just hang.
A potential fix for this is include in revision 1524 of mod_wsgi 3.X branch and
1525 of mod_wsgi
4.X trunk.
Original issue reported on code.google.com by Graham.Dumpleton@gmail.com on 26 Jan 2010 at 3:44
Original issue reported on code.google.com by
Graham.Dumpleton@gmail.com
on 26 Jan 2010 at 3:44