]> granicus.if.org Git - apache/commitdiff
Install signal handlers for crashes before detaching. Previously, there
authorStefan Fritsch <sf@apache.org>
Tue, 26 Jul 2011 20:37:49 +0000 (20:37 +0000)
committerStefan Fritsch <sf@apache.org>
Tue, 26 Jul 2011 20:37:49 +0000 (20:37 +0000)
was a time span where crashes would be neither visible on the console nor
logged in the error log.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1151234 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
server/mpm/event/event.c
server/mpm/prefork/prefork.c
server/mpm/worker/worker.c

diff --git a/CHANGES b/CHANGES
index 8f4c94be0f060ceee41f2bcfc4d7341c5effd773..7844bb79e9848bdaf2ab837724599e116d49e0e5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@
 
 Changes with Apache 2.3.14
 
+  *) prefork, worker, event: Make sure crashes are logged to the error log if
+     httpd has already detached from the console. [Stefan Fritsch]
+
   *) prefork, worker, event: Reduce period during startup/restart where a
      successive signal may be lost. PR 43696. [Arun Bhalla <arun shme net>]
 
index 90cb90afd8e798483cafc4b3958b8e0cd2e3a280..82401658d98d3b04cf0c241ce63bf21b192d3b01 100644 (file)
@@ -2758,6 +2758,8 @@ static int event_pre_config(apr_pool_t * pconf, apr_pool_t * plog,
         apr_pollset_destroy(event_pollset);
 
         if (!one_process && !foreground) {
+            /* before we detach, setup crash handlers to log to errorlog */
+            ap_fatal_signal_setup(ap_server_conf, pconf);
             rv = apr_proc_detach(no_detach ? APR_PROC_DETACH_FOREGROUND
                                  : APR_PROC_DETACH_DAEMONIZE);
             if (rv != APR_SUCCESS) {
index da649f1bad1119b52ede37a220850494a58e9692..9df7e0ac81c42d7e26797c657e9775f11836a258 100644 (file)
@@ -1275,6 +1275,8 @@ static int prefork_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp
     ++retained->module_loads;
     if (retained->module_loads == 2) {
         if (!one_process && !foreground) {
+            /* before we detach, setup crash handlers to log to errorlog */
+            ap_fatal_signal_setup(ap_server_conf, pconf);
             rv = apr_proc_detach(no_detach ? APR_PROC_DETACH_FOREGROUND
                                            : APR_PROC_DETACH_DAEMONIZE);
             if (rv != APR_SUCCESS) {
index 13eac65204c5ba398f87fda083f1bd94a2da88f9..4f80f9a370943ddbe876782da5c742924c1b6ee1 100644 (file)
@@ -1987,6 +1987,8 @@ static int worker_pre_config(apr_pool_t *pconf, apr_pool_t *plog,
     ++retained->module_loads;
     if (retained->module_loads == 2) {
         if (!one_process && !foreground) {
+            /* before we detach, setup crash handlers to log to errorlog */
+            ap_fatal_signal_setup(ap_server_conf, pconf);
             rv = apr_proc_detach(no_detach ? APR_PROC_DETACH_FOREGROUND
                                            : APR_PROC_DETACH_DAEMONIZE);
             if (rv != APR_SUCCESS) {