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
on mod_cache_disk to suit our workload. It feels unlikely to have
these side effects, although anything is possible I guess...
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...
https://github.com/accumu/mod_cache_disk_largefile/blob/master/mod_cache_disk_largefile.c#L3065
do_bgcopy() is our code that creates the threads, if you're
interested.
Also, is mpm_event loaded dynamically (LoadModule) or compiled
statically (builtin)?
It's loaded dynamically by:
LoadModule mpm_event_module libexec/mod_mpm_event.so
Ah, so the "old gen" marker in server-status isn't the same mechanism
that's used by the processes for the accepting/stopping logic?
The "old gen" marks the processes that have an older generation number
than the one of the latest reload.
If some children processes somehow miss the "signal" to stop,
mod_status will still mark them as "old gen" because their generation
number in the scoreboard is old, but still those children will
continue to run as if nothing happened.
OK, makes sense...
It shouldn't happen, but as you say anything is possible..
Yup, especially if it's home-grown code that's to blame ;)
/Nikke
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Niklas Edmundsson, Admin @ {acc,hpc2n}.umu.se | ni...@acc.umu.se
---------------------------------------------------------------------------
"Besides, you look good in a dress." -Riker, to Worf
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=