I was ambivalent on asking this in this thread, or do a new one, but since this thread has some background for our setup I opted to do it here.

On Tue, 30 Mar 2021, Niklas Edmundsson wrote:
On Tue, 30 Mar 2021, Yann Ylavic wrote:
On Tue, Mar 30, 2021 at 8:37 PM Niklas Edmundsson <ni...@acc.umu.se> wrote:

Out of these, mod_cache_disk_largefile nonstandard, it's our own take

Does this module create threads?

Gah. Got it in one. Yes, it creates threads dynamically to cache large files in the background, and indeed when looking at the code it doesn't mask signals. At this point I fully expect this to be the issue, although I don't really understand why it should be...

AIUI, event.c calls apr_setup_signal_thread() that masks all signal delivery which in turn should be inherited for all subsequently created threads, be it by event.c or otherwise...

Could us spawning short-lived threads in our own module in any way cause mpm_event to behave like this when running out of workers, from trace6 logging on the main server (not vhosts):

[Mon Apr 12 13:17:37.815553 2021] [mpm_event:trace1] [pid 583332:tid 
139762336704256] event.c(1811): Idle workers: 0

Notice the time gap here. NOTHING is logged by mpm_event in this time frame. Not even the every-second trace6 connections: messages that's otherwise present...

[Mon Apr 12 13:37:40.314720 2021] [mpm_event:debug] [pid 583332:tid 
139762336704256] event.c(485): AH00457: Accepting new connections again: 62 
active conns (0 lingering/0 clogged/0 suspended), 2 idle workers

At this point in time the server broke out of the catatonic state, and a few seconds later it started logging "workers shutdown" messages, ie:

[Mon Apr 12 13:37:43.042779 2021] [mpm_event:trace6] [pid 581994:tid 
139762336704256] event.c(1635): 11/64 workers shutdown

as if it was whiplash:ing from total overload to cleaning surplus workers...

event.c has the following config from server-info, shouldn't be too exotic:

ListenBacklog 4000
Listen 80
Listen 443
GracefulShutdownTimeout 3600
ServerLimit 200
StartServers 1
MinSpareThreads 40
MaxSpareThreads 1024
ThreadLimit 64
ThreadsPerChild 64
MaxRequestWorkers 4096
AsyncRequestWorkerFactor 10


/Nikke
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se      |     ni...@acc.umu.se
---------------------------------------------------------------------------
 Windows isn't CrippleWare -- it's "Functionally Challenged".
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Reply via email to