Underlying the issue, this is a flaw in APR ./configure which selects two default
mutexes, a confusing situation. I suspect RHEL and others patch around this
issue or toggle the appropriate autoconf variables during ./configure. The right
answer on linux is going to be pthread.
--- Comment #12 from mark@xxxxxxxxxxxxx ---
(In reply to Yann Ylavic from comment #8)
> KILLing the children processes shouldn't leak semaphores since there are
> created (and destroyed) by the parent process.
> Leaks usually happen when the parent process itself is killed, or crashes.
> Does your system report such parent process crashes?
No, there's no indication of the parent crashing. Should the parent PID change
after a SIGHUP? I will peer at the docs though.
If the parent is correctly managing the startup/graceful/shutdown scenarios,
and your parent process is not being killed/segfaulting, then the most likely
culprit is one of the modules I mentioned before, with a straightforward code
defect. Logic I introduced in mod_bmx_vhost, for example, leaked one mutex
This is why I'd encourage you to decouple one or a couple of modules at a time,
try cycling the server several times with both graceful and full restarts to see
if you can identify a third party module leaking semaphores, it's very unlikely
to be a core module of httpd.