From: Colm MacCarthaigh Date: Sun, 18 Sep 2005 19:39:02 +0000 (+0000) Subject: Backport r239430 to the 2.2.x branch. Lets make sure WINCH is kept free. X-Git-Tag: 2.1.8~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8fe06319289f4418c102e34969e3d9fb8ff99d95;p=thirdparty%2Fapache%2Fhttpd.git Backport r239430 to the 2.2.x branch. Lets make sure WINCH is kept free. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@289961 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 29c563965a9..4d8446d7c51 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,10 @@ -*- coding: utf-8 -*- +Changes with Apache 2.1.8 + + *) Linux 2.0: remove support for threaded MPM's due to linuxthreads use + of SIGUSR1 clashing with graceful restart signal. [Colm MacCarthaigh] + Changes with Apache 2.1.7 - [Remove entries to the current 2.0 section below, when backported] *) SECURITY: CAN-2005-2491 (cve.mitre.org): Fix integer overflows in PCRE in quantifier parsing which could diff --git a/configure.in b/configure.in index afcf14257dd..ea97e3849e2 100644 --- a/configure.in +++ b/configure.in @@ -232,8 +232,6 @@ esac APACHE_SUBST(SHLTCFLAGS) APACHE_SUBST(LTCFLAGS) -AP_SIG_GRACEFUL=USR1 - case $host in *-apple-aux3*) APR_SETVAR(APACHE_MPM, [prefork]) @@ -249,9 +247,6 @@ case $host in ;; *-linux-*) case `uname -r` in - 2.0* ) - AP_SIG_GRACEFUL=WINCH - ;; 2.[[2-9]]* ) APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1]) ;; @@ -575,15 +570,6 @@ if test "$AP_NONBLOCK_WHEN_MULTI_LISTEN" = "1"; then [Listening sockets are non-blocking when there are more than 1]) fi -AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL, SIG$AP_SIG_GRACEFUL, [Signal used to gracefully restart]) -AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_STRING, "SIG$AP_SIG_GRACEFUL", [Signal used to gracefully restart (as a quoted string)]) -AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_SHORT, $AP_SIG_GRACEFUL, [Signal used to gracefully restart (without SIG prefix)]) -AP_SIG_GRACEFUL_SHORT=$AP_SIG_GRACEFUL -AP_SIG_GRACEFUL=SIG$AP_SIG_GRACEFUL_SHORT -AC_SUBST(AP_SIG_GRACEFUL) -AC_SUBST(AP_SIG_GRACEFUL_STRING) -AC_SUBST(AP_SIG_GRACEFUL_SHORT) - APACHE_FAST_OUTPUT(Makefile modules/Makefile srclib/Makefile) APACHE_FAST_OUTPUT(os/Makefile server/Makefile) APACHE_FAST_OUTPUT(support/Makefile srclib/pcre/Makefile) diff --git a/include/mpm_common.h b/include/mpm_common.h index a36b926ff57..161b48e486c 100644 --- a/include/mpm_common.h +++ b/include/mpm_common.h @@ -56,6 +56,15 @@ extern "C" { #define DEFAULT_LISTENBACKLOG 511 #endif +/* Signal used to gracefully restart */ +#define AP_SIG_GRACEFUL SIGUSR1 + +/* Signal used to gracefully restart (without SIG prefix) */ +#define AP_SIG_GRACEFUL_SHORT USR1 + +/* Signal used to gracefully restart (as a quoted string) */ +#define AP_SIG_GRACEFUL_STRING "SIGUSR1" + /** * Make sure all child processes that have been spawned by the parent process * have died. This includes process registered as "other_children". diff --git a/server/mpm/config.m4 b/server/mpm/config.m4 index f8b2022cdd9..34018382e1c 100644 --- a/server/mpm/config.m4 +++ b/server/mpm/config.m4 @@ -38,6 +38,22 @@ if ap_mpm_is_threaded; then AC_MSG_CHECKING(checking for replacement) AC_MSG_RESULT(prefork selected) apache_cv_mpm=prefork + else + case $host in + *-linux-*) + case `uname -r` in + 2.0* ) + dnl Threaded MPM's are not supported on Linux 2.0 + dnl as on 2.0 the linuxthreads library uses SIGUSR1 + dnl and SIGUSR2 internally + echo "Threaded MPM's are not supported on this platform" + AC_MSG_CHECKING(checking for replacement) + AC_MSG_RESULT(prefork selected) + apache_cv_mpm=prefork + ;; + esac + ;; + esac fi fi diff --git a/server/mpm_common.c b/server/mpm_common.c index 8554c52e6bd..93711f7c192 100644 --- a/server/mpm_common.c +++ b/server/mpm_common.c @@ -917,7 +917,7 @@ int ap_signal_server(int *exit_status, apr_pool_t *pconf) printf("httpd not running, trying to start\n"); } else { - *exit_status = send_signal(otherpid, SIGUSR1); + *exit_status = send_signal(otherpid, AP_SIG_GRACEFUL); return 1; } }