-D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE 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.
On Sat, Oct 20, 2018 at 7:04 AM <[email protected]> wrote: > --- Comment #12 from [email protected] --- > (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 for each graceful restart [https://github.com/hyperic/mod_bmx/issues/6]. 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.
