You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by jo...@apache.org on 2026/08/30 06:08:44 UTC

svn commit: r1937634 - httpd/httpd/trunk/server/mpm/prefork

Author: jorton
Date: Sun Aug 30 06:08:44 2026
New Revision: 1937634

Log:
* server/mpm/prefork/prefork.c (prefork_run): Ignore SIGHUP while
  killing the previous generation, which is signalled by process group
  and so includes the parent itself.

Fixes: 243c5fad0a (SVN r1892587, trunk-only)

Co-Authored-By: Claude Opus 5 (1M context) <no...@anthropic.com>
GitHub: PR #727

Modified:
   httpd/httpd/trunk/server/mpm/prefork/prefork.c

Modified: httpd/httpd/trunk/server/mpm/prefork/prefork.c
==============================================================================
--- httpd/httpd/trunk/server/mpm/prefork/prefork.c	Sun Aug 30 06:08:14 2026	(r1937633)
+++ httpd/httpd/trunk/server/mpm/prefork/prefork.c	Sun Aug 30 06:08:44 2026	(r1937634)
@@ -970,7 +970,11 @@ static int prefork_run(apr_pool_t *_pcon
             }
         }
         else {
-            /* Kill 'em off */
+            /* Kill 'em off.  The parent is in this process group too, and
+             * its handler would take the signal as a fresh restart request
+             * and loop; ap_unixd_mpm_set_signals() below puts the handler
+             * back. */
+            apr_signal(SIGHUP, SIG_IGN);
             if (ap_unixd_killpg(getpgrp(), SIGHUP) < 0) {
                 ap_log_error(APLOG_MARK, APLOG_WARNING, errno,
                              ap_server_conf, APLOGNO(00172) "killpg SIGHUP");