(going back as far as Solaris 10)

Context:

The APR default on Solaris is fcntl, because of some problems recovering 
the mutex after a child process crash on now-ancient levels of Solaris. 

The choice of fcntl is bad news for a threaded server which uses an 
accept mutex (e.g., worker MPM with multiple listening sockets) when 
other modules are using their own fcntl-based mutexes, since the kernel 
will think there is a potential deadlock when the asynchronous listener 
thread and request handler thread try to obtain their mutexes in the 
opposite order of another process.

Setting "AcceptMutex pthread" in the config can work around some 
instances of this problem (when only one plug-in module has its own 
hard-coded fcntl-based mutex).  Changing the APR default to pthread 
would solve it more generally.


Reply via email to