One thing that is currently missing is a way to shutdown/reap/join module 
threads when the mpm exits.

Example: 

mod_watchdog creates several threads post_config which are only joined on pool 
destruction.

Problem:

pool destruction is not ordered between modules and dependencies on order are 
not
fully known. This leads to crashes in OpenSSL, for example, when mod_ssl is 
destructed
before all watchdogs using OpenSSL are joined (OpenSSL 3.x seems to do better 
on this, 
but the point remains valid).

There has been attempts by Yann to make a patch that make the OpenSSL 
termination
way later (adding it to a 'higher' pool destruction). But that would only solve
this particular problem and not any other 3rd party dependency.

Proposal:

Add a hook 'child_exiting(int graceful)' where modules can register
and do their own thread join/reap.


On a graceful shutdown, this would allow watchdogs to fully complete any 
ongoing task
before things start to disappear in the process.

Thoughts?

Kind Regards,
Stefan


Reply via email to