I don't think DirectAdmin really has anything to do with this.
This is an Apache issue. Unfortunately I don't really know how to report a bug to Apache or even how to describe the issue in a repeatable form.
This thread was started back when Apache 2.4.49 was released. I tried to find my notes on this issue with Apache 2.4.49 but could not find anything. I think I skipped this version - probably because I found this thread or others experiencing the issue, so I just waited until Apache 2.4.50 was released hoping to avoid this problem.
First question:
Is everybody experiencing this issue using the event MPM? You can see what MPM you are using by running:
/usr/sbin/apachectl -V
and looking for what is set for
Server MPM:
Or
/usr/sbin/apachectl -V | grep "^Server MPM:"
I suspect everybody that's having this issue is using event. Those that are not, may be using worker or prefork.
The changelog for Apache 2.4.50 from Apache 2.4.49 includes:
*) event mpm: Correctly count active child processes in parent process if
child process dies due to MaxConnectionsPerChild.
PR 65592 [Ruediger Pluem]
Which leads to the bug report:
bz.apache.org
The patch mentioned in that bug report was applied to Apache 2.4.50.
The differences in
server/mpm/event/event.c from Apache 2.4.49 to Apache 2.4.50 are:
Source code changes report for the member file server/mpm/event/event.c of the httpd software package between the versions 2.4.49 and 2.4.50
fossies.org
Specifically the addition of
if (ps->quiescing == 1) {
ps->quiescing = 2;
active_daemons--;
}
In
static void perform_idle_server_maintenance()
I assume that this is what fixed the issue everyone was experiencing with 2.4.49 - which I gather is similar to what folks are seeing with Apache 2.4.52. (Anybody that experienced the issue with Apache 2.4.49 and is also experiencing this issue with Apache 2.4.52 want to weigh in on the similarities?)
Now from Apache 2.4.50 to Apache 2.4.51
server/mpm/event/event.c was not touched.
From Apache 2.4.51 to Apache 2.4.52,
server/mpm/event/event.c was changed:
Source code changes report for the member file server/mpm/event/event.c of the httpd software package between the versions 2.4.51 and 2.4.52
fossies.org
And there were a lot of changes.
There were a lot of changes in the
static void perform_idle_server_maintenance() function.
Specifically, the part that was changed from 2.4.49 to 2.4.50:
if (ps->quiescing == 1) {
ps->quiescing = 2;
active_daemons--;
}
Was changed to:
int child_threads_active = 0;
if (ps->quiescing == 1) {
ps->quiescing = 2;
retained->active_daemons--;
}
Along with a lot of other changes.
I would surmise that all of these changes have re-introduced the bug that came to be in Apache 2.4.49 or at least introduced something very similar. And the Apache developers would need to fix it.
I'm not going to even pretend to understand what all is being done with the changes from Apache 2.4.51 to Apache 2.4.52 - but I have to believe that these changes are a large part of the issue we are all facing.