PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) prefork: This fixes race-condition in signals handling when httpd is
- runnning on foreground and user hits ctrl+c
- trunk patch: http://svn.apache.org/r1618555
- 2.4.x patch: svn merge -c 1618555 ^/httpd/httpd/trunk .
- +1: ylavic, jorton, jim
- jailetc36: untested because I'm unsure on how to reproduce the race, but
- the patch description looks straighforward.
- If confirmed, it would worth, IMHO, a CHANGE entry and maybe a
- 2.2.x backport.
- [jorton: race, so hard to repro, triggered regularly w/docker.]
-
*) core: ap_server_config_defines and ap_server_{pre,post}_read_config
constantness and bytes saving, no functional change.
trunk patch: http://svn.apache.org/r1713043
{
retained->mpm->mpm_state = AP_MPMQ_STOPPING;
+ apr_signal(SIGHUP, SIG_IGN);
+ apr_signal(SIGTERM, SIG_IGN);
+
if (pchild) {
apr_pool_destroy(pchild);
}
*/
apr_signal(SIGHUP, just_die);
apr_signal(SIGTERM, just_die);
+ /* Ignore SIGINT in child. This fixes race-condition in signals
+ * handling when httpd is runnning on foreground and user hits ctrl+c.
+ * In this case, SIGINT is sent to all children followed by SIGTERM
+ * from the main process, which interrupts the SIGINT handler and
+ * leads to inconsistency.
+ */
+ apr_signal(SIGINT, SIG_IGN);
/* The child process just closes listeners on AP_SIG_GRACEFUL.
* The pod is used for signalling the graceful restart.
*/