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".
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=