httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jerenkra...@apache.org
Subject cvs commit: httpd-2.0/support apachectl.in
Date Tue, 18 Sep 2001 22:13:59 GMT
jerenkrantz    01/09/18 15:13:59

  Modified:    .        CHANGES configure.in
               modules/generators mod_cgid.c
               modules/mappers mod_so.c
               server   log.c mpm_common.c protocol.c
               server/mpm/beos beos.c
               server/mpm/perchild perchild.c
               server/mpm/prefork prefork.c
               server/mpm/threaded threaded.c
               server/mpm/worker worker.c
               support  apachectl.in
  Log:
  Switch back to SIGUSR1 for graceful restarts on all platforms that
  support it.  This defines a symbol called AP_SIG_GRACEFUL in
  ap_config_auto.h which will have the appropriate signal value.  All
  direct references to SIGWINCH have been replaced with AP_SIG_GRACEFUL.
  
  On Linux 2.0, use SIGWINCH instead since SIGUSR1 is used by glibc
  2.0's user-space threading library to control threads.  All later
  versions of Linux/glibc don't have this problem.  (Not to mention the
  security holes in older Linux versions which make it unsuitable for
  use as a web server.)  If your platform doesn't have SIGUSR1, use the
  appropriate mojo in configure to define what your graceful restart
  signal should be.
  
  In theory, a configure switch could be added to allow the admin to
  specify the appropriate signal that should be used.  This is left
  as an exercise to the reader for now.
  
  The docs need to be updated.  Since the signal is now configurable,
  just saying SIGUSR1 for graceful restart isn't completely true.  Also,
  the apachectl functionality needs to be moved into httpd - this is
  what Win32 does and it makes us consistent across platforms.
  
  Roy issued a veto against use of SIGWINCH by default, so this should
  resolve that veto.
  
  Revision  Changes    Path
  1.362     +3 -0      httpd-2.0/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/CHANGES,v
  retrieving revision 1.361
  retrieving revision 1.362
  diff -u -r1.361 -r1.362
  --- CHANGES	2001/09/18 21:14:16	1.361
  +++ CHANGES	2001/09/18 22:13:56	1.362
  @@ -1,5 +1,8 @@
   Changes with Apache 2.0.26-dev
   
  +  *) Switch back to SIGUSR1 for graceful restarts on all platforms that
  +     support it.  [Justin Erenkrantz]
  +
     *) Cleanup the worker MPM.  We no longer re-use transaction
        pools.  This incurs less overhead than shuffling the pools
        around so that they can be re-used.  Remove one of the
  
  
  
  1.180     +11 -1     httpd-2.0/configure.in
  
  Index: configure.in
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/configure.in,v
  retrieving revision 1.179
  retrieving revision 1.180
  diff -u -r1.179 -r1.180
  --- configure.in	2001/09/15 11:44:55	1.179
  +++ configure.in	2001/09/18 22:13:56	1.180
  @@ -142,6 +142,8 @@
   APACHE_SUBST(SHLTCFLAGS)
   APACHE_SUBST(LTCFLAGS)
   
  +AP_SIG_GRACEFUL=SIGUSR1
  +
   case $host in
     *-apple-aux3*)
         APR_SETVAR(APACHE_MPM, [prefork])
  @@ -157,7 +159,11 @@
         ;;
     *-linux-*)
         case `uname -r` in
  -        2.[[2-9]]* ) APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
  +        2.0* ) 
  +            AP_SIG_GRACEFUL=SIGWINCH
  +            ;;
  +        2.[[2-9]]* ) 
  +            APR_SETVAR(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, [1])
               ;;
           * )
               ;;
  @@ -346,6 +352,10 @@
       AC_DEFINE(SINGLE_LISTEN_UNSERIALIZED_ACCEPT, 1, 
                 [This platform doesn't suffer from the thundering herd problem])
   fi
  +
  +AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL, $AP_SIG_GRACEFUL, [Signal used to gracefully restart])
  +AC_DEFINE_UNQUOTED(AP_SIG_GRACEFUL_STRING, "$AP_SIG_GRACEFUL", [Signal used to gracefully
restart (as a quoted string)])
  +AC_SUBST(AP_SIG_GRACEFUL)
   
   dnl check for endianness
   if test "$cross_compiling" = "no"; then
  
  
  
  1.98      +3 -3      httpd-2.0/modules/generators/mod_cgid.c
  
  Index: mod_cgid.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/generators/mod_cgid.c,v
  retrieving revision 1.97
  retrieving revision 1.98
  diff -u -r1.97 -r1.98
  --- mod_cgid.c	2001/08/27 20:25:42	1.97
  +++ mod_cgid.c	2001/09/18 22:13:57	1.98
  @@ -238,10 +238,10 @@
           case APR_OC_REASON_LOST:
               /* it would be better to restart just the cgid child
                * process but for now we'll gracefully restart the entire 
  -             * server by sending SIGWINCH to ourself, the httpd parent
  -             * process
  +             * server by sending AP_SIG_GRACEFUL to ourself, the httpd 
  +             * parent process
                */
  -            kill(getpid(), SIGWINCH);
  +            kill(getpid(), AP_SIG_GRACEFUL);
               break;
           case APR_OC_REASON_RESTART:
               apr_proc_other_child_unregister(data);
  
  
  
  1.43      +5 -5      httpd-2.0/modules/mappers/mod_so.c
  
  Index: mod_so.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_so.c,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- mod_so.c	2001/06/07 10:38:13	1.42
  +++ mod_so.c	2001/09/18 22:13:57	1.43
  @@ -59,8 +59,8 @@
   /* 
    * This module is used to load Apache modules at runtime. This means that the
    * server functionality can be extended without recompiling and even without
  - * taking the server down at all. Only a HUP or WINCH signal needs to be send
  - * to the server to reload the dynamically loaded modules.
  + * taking the server down at all. Only a HUP or AP_SIG_GRACEFUL signal 
  + * needs to be sent to the server to reload the dynamically loaded modules.
    *
    * To use, you'll first need to build your module as a shared library, then
    * update your configuration (httpd.conf) to get the Apache core to load the
  @@ -98,9 +98,9 @@
    * directive to get these log messages).
    *
    * If you edit the LoadModule directives while the server is live you can get
  - * Apache to re-load the modules by sending it a HUP or WINCH signal as normal.
  - * You can use this to dynamically change the capability of your server
  - * without bringing it down.
  + * Apache to re-load the modules by sending it a HUP or AP_SIG_GRACEFUL 
  + * signal as normal.  You can use this to dynamically change the capability 
  + * of your server without bringing it down.
    *
    * Because currently there is only limited builtin support in the Configure
    * script for creating the shared library files (`.so'), please consult your
  
  
  
  1.97      +1 -1      httpd-2.0/server/log.c
  
  Index: log.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/log.c,v
  retrieving revision 1.96
  retrieving revision 1.97
  diff -u -r1.96 -r1.97
  --- log.c	2001/07/30 17:55:38	1.96
  +++ log.c	2001/09/18 22:13:57	1.97
  @@ -527,7 +527,7 @@
       mypid = getpid();
       if (mypid != saved_pid 
            && apr_stat(&finfo, fname, APR_FINFO_MTIME, p) == APR_SUCCESS) {
  -      /* WINCH and HUP call this on each restart.
  +      /* AP_SIG_GRACEFUL and HUP call this on each restart.
          * Only warn on first time through for this pid.
          *
          * XXX: Could just write first time through too, although
  
  
  
  1.67      +1 -1      httpd-2.0/server/mpm_common.c
  
  Index: mpm_common.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm_common.c,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -u -r1.66 -r1.67
  --- mpm_common.c	2001/09/14 23:28:41	1.66
  +++ mpm_common.c	2001/09/18 22:13:57	1.67
  @@ -245,7 +245,7 @@
           switch (signum) {
           case SIGTERM:
           case SIGHUP:
  -        case SIGWINCH:
  +        case AP_SIG_GRACEFUL:
           case SIGKILL:
               break;
           default:
  
  
  
  1.45      +0 -11     httpd-2.0/server/protocol.c
  
  Index: protocol.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/protocol.c,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- protocol.c	2001/09/11 18:38:21	1.44
  +++ protocol.c	2001/09/18 22:13:57	1.45
  @@ -406,17 +406,6 @@
       }
       /* we've probably got something to do, ignore graceful restart requests */
   
  -    /* XXX - sigwait doesn't work if the signal has been SIG_IGNed (under
  -     * linux 2.0 w/ glibc 2.0, anyway), and this step isn't necessary when
  -     * we're running a sigwait thread anyway. If/when unthreaded mode is
  -     * put back in, we should make sure to ignore this signal iff a sigwait
  -     * thread isn't used. - mvsk
  -
  -#ifdef SIGWINCH
  -    apr_signal(SIGWINCH, SIG_IGN);
  -#endif
  -    */
  -
       r->request_time = apr_time_now();
       r->the_request = apr_pstrdup(r->pool, l);
       r->method = ap_getword_white(r->pool, &ll);
  
  
  
  1.62      +12 -11    httpd-2.0/server/mpm/beos/beos.c
  
  Index: beos.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/beos/beos.c,v
  retrieving revision 1.61
  retrieving revision 1.62
  diff -u -r1.61 -r1.62
  --- beos.c	2001/08/30 20:50:05	1.61
  +++ beos.c	2001/09/18 22:13:58	1.62
  @@ -119,8 +119,8 @@
   
   /*
    * The max child slot ever assigned, preserved across restarts.  Necessary
  - * to deal with MaxClients changes across SIGWINCH restarts.  We use this
  - * value to optimize routines that have to scan the entire scoreboard.
  + * to deal with MaxClients changes across AP_SIG_GRACEFUL restarts.  We use 
  + * this value to optimize routines that have to scan the entire scoreboard.
    */
   int ap_max_child_assigned = -1;
   int ap_max_threads_limit = -1;
  @@ -226,7 +226,7 @@
   
   static void restart(int sig)
   {
  -    ap_start_restart(sig == SIGWINCH);
  +    ap_start_restart(sig == AP_SIG_GRACEFUL);
   }
   
   static void tell_workers_to_exit(void)
  @@ -270,14 +270,15 @@
       if (sigaction(SIGPIPE, &sa, NULL) < 0)
       	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGPIPE)");
   
  -    /* we want to ignore HUPs and WINCH while we're busy processing one */
  +    /* we want to ignore HUPs and AP_SIG_GRACEFUL while we're busy 
  +     * processing one */
       sigaddset(&sa.sa_mask, SIGHUP);
  -    sigaddset(&sa.sa_mask, SIGWINCH);
  +    sigaddset(&sa.sa_mask, AP_SIG_GRACEFUL);
       sa.sa_handler = restart;
       if (sigaction(SIGHUP, &sa, NULL) < 0)
       	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGHUP)");
  -    if (sigaction(SIGWINCH, &sa, NULL) < 0)
  -	    ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGWINCH)");
  +    if (sigaction(AP_SIG_GRACEFUL, &sa, NULL) < 0)
  +	    ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(" AP_SIG_GRACEFUL_STRING
")");
   }
   
   /*****************************************************************
  @@ -810,9 +811,9 @@
   
       /* If we're doing a graceful_restart then we're going to see a lot
        * of threads exiting immediately when we get into the main loop
  -     * below (because we just sent them SIGWINCH).  This happens pretty
  -     * rapidly... and for each one that exits we'll start a new one until
  -     * we reach at least threads_min_free.  But we may be permitted to
  +     * below (because we just sent them AP_SIG_GRACEFUL).  This happens 
  +     * pretty rapidly... and for each one that exits we'll start a new one 
  +     * until we reach at least threads_min_free.  But we may be permitted to
        * start more than that, so we'll just keep track of how many we're
        * supposed to start up without the 1 second penalty between each fork.
        */
  @@ -920,7 +921,7 @@
   
       if (is_graceful) {
           ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, ap_server_conf,
  -		    "SIGWINCH received.  Doing graceful restart");
  +		    AP_SIG_GRACEFUL_STRING " received.  Doing graceful restart");
       }
       else {
           /* Kill 'em all.  Since the child acts the same on the parents SIGTERM 
  
  
  
  1.79      +16 -14    httpd-2.0/server/mpm/perchild/perchild.c
  
  Index: perchild.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/perchild/perchild.c,v
  retrieving revision 1.78
  retrieving revision 1.79
  diff -u -r1.78 -r1.79
  --- perchild.c	2001/09/04 07:59:55	1.78
  +++ perchild.c	2001/09/18 22:13:58	1.79
  @@ -151,8 +151,9 @@
   
   /*
    * The max child slot ever assigned, preserved across restarts.  Necessary
  - * to deal with NumServers changes across SIGWINCH restarts.  We use this
  - * value to optimize routines that have to scan the entire child table.
  + * to deal with NumServers changes across AP_SIG_GRACEFUL restarts.  We 
  + * use this value to optimize routines that have to scan the entire child 
  + * table.
    *
    * XXX - It might not be worth keeping this code in. There aren't very
    * many child processes in this MPM.
  @@ -352,7 +353,7 @@
   static void restart(int sig)
   {
   #ifndef WIN32
  -    ap_start_restart(sig == SIGWINCH);
  +    ap_start_restart(sig == AP_SIG_GRACEFUL);
   #else
       ap_start_restart(1);
   #endif
  @@ -416,14 +417,15 @@
   	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGPIPE)");
   #endif
   
  -    /* we want to ignore HUPs and WINCH while we're busy processing one */
  +    /* we want to ignore HUPs and AP_SIG_GRACEFUL while we're busy 
  +     * processing one */
       sigaddset(&sa.sa_mask, SIGHUP);
  -    sigaddset(&sa.sa_mask, SIGWINCH);
  +    sigaddset(&sa.sa_mask, AP_SIG_GRACEFUL);
       sa.sa_handler = restart;
       if (sigaction(SIGHUP, &sa, NULL) < 0)
   	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGHUP)");
  -    if (sigaction(SIGWINCH, &sa, NULL) < 0)
  -	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGWINCH)");
  +    if (sigaction(AP_SIG_GRACEFUL, &sa, NULL) < 0)
  +	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(" AP_SIG_GRACEFUL_STRING
")");
   #else
       if (!one_process) {
   	apr_signal(SIGSEGV, sig_coredump);
  @@ -451,9 +453,9 @@
   #ifdef SIGHUP
       apr_signal(SIGHUP, restart);
   #endif /* SIGHUP */
  -#ifdef SIGWINCH
  -    apr_signal(SIGWINCH, restart);
  -#endif /* SIGWINCH */
  +#ifdef AP_SIG_GRACEFUL
  +    apr_signal(AP_SIG_GRACEFUL, restart);
  +#endif /* AP_SIG_GRACEFUL */
   #ifdef SIGPIPE
       apr_signal(SIGPIPE, SIG_IGN);
   #endif /* SIGPIPE */
  @@ -1219,9 +1221,9 @@
   
       /* If we're doing a graceful_restart then we're going to see a lot
        * of children exiting immediately when we get into the main loop
  -     * below (because we just sent them SIGWINCH).  This happens pretty
  -     * rapidly... and for each one that exits we'll start a new one until
  -     * we reach at least daemons_min_free.  But we may be permitted to
  +     * below (because we just sent them AP_SIG_GRACEFUL).  This happens 
  +     * pretty rapidly... and for each one that exits we'll start a new one 
  +     * until we reach at least daemons_min_free.  But we may be permitted to
        * start more than that, so we'll just keep track of how many we're
        * supposed to start up without the 1 second penalty between each fork.
        */
  @@ -1284,7 +1286,7 @@
           char char_of_death = '!';
   
   	ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, ap_server_conf,
  -		    "SIGWINCH received.  Doing graceful restart");
  +           AP_SIG_GRACEFUL_STRING " received.  Doing graceful restart");
   
   	/* This is mostly for debugging... so that we know what is still
            * gracefully dealing with existing request.
  
  
  
  1.201     +17 -16    httpd-2.0/server/mpm/prefork/prefork.c
  
  Index: prefork.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/prefork/prefork.c,v
  retrieving revision 1.200
  retrieving revision 1.201
  diff -u -r1.200 -r1.201
  --- prefork.c	2001/08/30 20:50:05	1.200
  +++ prefork.c	2001/09/18 22:13:58	1.201
  @@ -144,8 +144,8 @@
   
   /*
    * The max child slot ever assigned, preserved across restarts.  Necessary
  - * to deal with MaxClients changes across SIGWINCH restarts.  We use this
  - * value to optimize routines that have to scan the entire scoreboard.
  + * to deal with MaxClients changes across AP_SIG_GRACEFUL restarts.  We 
  + * use this value to optimize routines that have to scan the entire scoreboard.
    */
   int ap_max_daemons_limit = -1;
   server_rec *ap_server_conf;
  @@ -435,7 +435,7 @@
       shutdown_pending = 1;
   }
   
  -/* restart() is the signal handler for SIGHUP and SIGWINCH
  +/* restart() is the signal handler for SIGHUP and AP_SIG_GRACEFUL
    * in the parent process, unless running in ONE_PROCESS mode
    */
   static void restart(int sig)
  @@ -445,7 +445,7 @@
   	return;
       }
       restart_pending = 1;
  -    if ((is_graceful = (sig == SIGWINCH))) {
  +    if ((is_graceful = (sig == AP_SIG_GRACEFUL))) {
           apr_pool_cleanup_kill(pconf, NULL, ap_cleanup_scoreboard);
       }
   }
  @@ -508,14 +508,15 @@
   	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGPIPE)");
   #endif
   
  -    /* we want to ignore HUPs and WINCH while we're busy processing one */
  +    /* we want to ignore HUPs and AP_SIG_GRACEFUL while we're busy 
  +     * processing one */
       sigaddset(&sa.sa_mask, SIGHUP);
  -    sigaddset(&sa.sa_mask, SIGWINCH);
  +    sigaddset(&sa.sa_mask, AP_SIG_GRACEFUL);
       sa.sa_handler = restart;
       if (sigaction(SIGHUP, &sa, NULL) < 0)
   	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGHUP)");
  -    if (sigaction(SIGWINCH, &sa, NULL) < 0)
  -        ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGWINCH)");
  +    if (sigaction(AP_SIG_GRACEFUL, &sa, NULL) < 0)
  +        ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(" AP_SIG_GRACEFUL_STRING
")");
   #else
       if (!one_process) {
   	apr_signal(SIGSEGV, sig_coredump);
  @@ -543,9 +544,9 @@
   #ifdef SIGHUP
       apr_signal(SIGHUP, restart);
   #endif /* SIGHUP */
  -#ifdef SIGWINCH
  -    apr_signal(SIGWINCH, restart);
  -#endif /* SIGWINCH */
  +#ifdef AP_SIG_GRACEFUL
  +    apr_signal(AP_SIG_GRACEFUL, restart);
  +#endif /* AP_SIG_GRACEFUL */
   #ifdef SIGPIPE
       apr_signal(SIGPIPE, SIG_IGN);
   #endif /* SIGPIPE */
  @@ -856,7 +857,7 @@
   
       if (one_process) {
   	apr_signal(SIGHUP, just_die);
  -        /* Don't catch SIGWINCH in ONE_PROCESS mode :) */
  +        /* Don't catch AP_SIG_GRACEFUL in ONE_PROCESS mode :) */
   	apr_signal(SIGINT, just_die);
   #ifdef SIGQUIT
   	apr_signal(SIGQUIT, SIG_DFL);
  @@ -909,10 +910,10 @@
   	 */
   	apr_signal(SIGHUP, just_die);
   	apr_signal(SIGTERM, just_die);
  -        /* The child process doesn't do anything for SIGWINCH.  Instead, the
  -         * pod is used for signalling graceful restart.
  +        /* The child process doesn't do anything for AP_SIG_GRACEFUL.  
  +         * Instead, the pod is used for signalling graceful restart.
            */
  -        apr_signal(SIGWINCH, SIG_IGN);
  +        apr_signal(AP_SIG_GRACEFUL, SIG_IGN);
   	child_main(slot);
       }
   
  @@ -1141,7 +1142,7 @@
   
       /* If we're doing a graceful_restart then we're going to see a lot
   	* of children exiting immediately when we get into the main loop
  -	* below (because we just sent them SIGWINCH).  This happens pretty
  +	* below (because we just sent them AP_SIG_GRACEFUL).  This happens pretty
   	* rapidly... and for each one that exits we'll start a new one until
   	* we reach at least daemons_min_free.  But we may be permitted to
   	* start more than that, so we'll just keep track of how many we're
  
  
  
  1.64      +15 -14    httpd-2.0/server/mpm/threaded/threaded.c
  
  Index: threaded.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/threaded/threaded.c,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- threaded.c	2001/08/30 20:50:06	1.63
  +++ threaded.c	2001/09/18 22:13:58	1.64
  @@ -134,8 +134,8 @@
   
   /*
    * The max child slot ever assigned, preserved across restarts.  Necessary
  - * to deal with MaxClients changes across SIGWINCH restarts.  We use this
  - * value to optimize routines that have to scan the entire scoreboard.
  + * to deal with MaxClients changes across AP_SIG_GRACEFUL restarts.  We use 
  + * this value to optimize routines that have to scan the entire scoreboard.
    */
   int ap_max_daemons_limit = -1;
   
  @@ -332,7 +332,7 @@
   
   static void restart(int sig)
   {
  -    ap_start_restart(sig == SIGWINCH);
  +    ap_start_restart(sig == AP_SIG_GRACEFUL);
   }
   
   static void set_signals(void)
  @@ -393,14 +393,15 @@
   	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGPIPE)");
   #endif
   
  -    /* we want to ignore HUPs and WINCH while we're busy processing one */
  +    /* we want to ignore HUPs and AP_SIG_GRACEFUL while we're busy 
  +     * processing one */
       sigaddset(&sa.sa_mask, SIGHUP);
  -    sigaddset(&sa.sa_mask, SIGWINCH);
  +    sigaddset(&sa.sa_mask, AP_SIG_GRACEFUL);
       sa.sa_handler = restart;
       if (sigaction(SIGHUP, &sa, NULL) < 0)
   	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGHUP)");
  -    if (sigaction(SIGWINCH, &sa, NULL) < 0)
  -	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGWINCH)");
  +    if (sigaction(AP_SIG_GRACEFUL, &sa, NULL) < 0)
  +	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(" AP_SIG_GRACEFUL_STRING
")");
   #else
       if (!one_process) {
   	apr_signal(SIGSEGV, sig_coredump);
  @@ -428,9 +429,9 @@
   #ifdef SIGHUP
       apr_signal(SIGHUP, restart);
   #endif /* SIGHUP */
  -#ifdef SIGWINCH
  -    apr_signal(SIGWINCH, restart);
  -#endif /* SIGWINCH */
  +#ifdef AP_SIG_GRACEFUL
  +    apr_signal(AP_SIG_GRACEFUL, restart);
  +#endif /* AP_SIG_GRACEFUL */
   #ifdef SIGPIPE
       apr_signal(SIGPIPE, SIG_IGN);
   #endif /* SIGPIPE */
  @@ -1254,9 +1255,9 @@
   
       /* If we're doing a graceful_restart then we're going to see a lot
        * of children exiting immediately when we get into the main loop
  -     * below (because we just sent them SIGWINCH).  This happens pretty
  -     * rapidly... and for each one that exits we'll start a new one until
  -     * we reach at least daemons_min_free.  But we may be permitted to
  +     * below (because we just sent them AP_SIG_GRACEFUL).  This happens 
  +     * pretty rapidly... and for each one that exits we'll start a new one 
  +     * until we reach at least daemons_min_free.  But we may be permitted to
        * start more than that, so we'll just keep track of how many we're
        * supposed to start up without the 1 second penalty between each fork.
        */
  @@ -1332,7 +1333,7 @@
       
       if (is_graceful) {
   	ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, ap_server_conf,
  -		    "SIGWINCH received.  Doing graceful restart");
  +		    AP_SIG_GRACEFUL_STRING " received.  Doing graceful restart");
   
   	/* This is mostly for debugging... so that we know what is still
            * gracefully dealing with existing request.
  
  
  
  1.23      +14 -12    httpd-2.0/server/mpm/worker/worker.c
  
  Index: worker.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/worker/worker.c,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- worker.c	2001/09/18 21:14:18	1.22
  +++ worker.c	2001/09/18 22:13:58	1.23
  @@ -142,8 +142,9 @@
   
   /*
    * The max child slot ever assigned, preserved across restarts.  Necessary
  - * to deal with MaxClients changes across SIGWINCH restarts.  We use this
  - * value to optimize routines that have to scan the entire scoreboard.
  + * to deal with MaxClients changes across AP_SIG_GRACEFUL restarts.  We 
  + * use this value to optimize routines that have to scan the entire 
  + * scoreboard.
    */
   int ap_max_daemons_limit = -1;
   
  @@ -353,7 +354,7 @@
   
   static void restart(int sig)
   {
  -    ap_start_restart(sig == SIGWINCH);
  +    ap_start_restart(sig == AP_SIG_GRACEFUL);
   }
   
   static void set_signals(void)
  @@ -414,14 +415,15 @@
   	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGPIPE)");
   #endif
   
  -    /* we want to ignore HUPs and WINCH while we're busy processing one */
  +    /* we want to ignore HUPs and AP_SIG_GRACEFUL while we're busy 
  +     * processing one */
       sigaddset(&sa.sa_mask, SIGHUP);
  -    sigaddset(&sa.sa_mask, SIGWINCH);
  +    sigaddset(&sa.sa_mask, AP_SIG_GRACEFUL);
       sa.sa_handler = restart;
       if (sigaction(SIGHUP, &sa, NULL) < 0)
   	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGHUP)");
  -    if (sigaction(SIGWINCH, &sa, NULL) < 0)
  -	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(SIGWINCH)");
  +    if (sigaction(AP_SIG_GRACEFUL, &sa, NULL) < 0)
  +	ap_log_error(APLOG_MARK, APLOG_WARNING, errno, ap_server_conf, "sigaction(" AP_SIG_GRACEFUL_STRING
")");
   #else
       if (!one_process) {
   	apr_signal(SIGSEGV, sig_coredump);
  @@ -449,9 +451,9 @@
   #ifdef SIGHUP
       apr_signal(SIGHUP, restart);
   #endif /* SIGHUP */
  -#ifdef SIGWINCH
  -    apr_signal(SIGWINCH, restart);
  -#endif /* SIGWINCH */
  +#ifdef AP_SIG_GRACEFUL
  +    apr_signal(AP_SIG_GRACEFUL, restart);
  +#endif /* AP_SIG_GRACEFUL */
   #ifdef SIGPIPE
       apr_signal(SIGPIPE, SIG_IGN);
   #endif /* SIGPIPE */
  @@ -1306,7 +1308,7 @@
   
       /* If we're doing a graceful_restart then we're going to see a lot
        * of children exiting immediately when we get into the main loop
  -     * below (because we just sent them SIGWINCH).  This happens pretty
  +     * below (because we just sent them AP_SIG_GRACEFUL).  This happens pretty
        * rapidly... and for each one that exits we'll start a new one until
        * we reach at least daemons_min_free.  But we may be permitted to
        * start more than that, so we'll just keep track of how many we're
  @@ -1384,7 +1386,7 @@
       
       if (is_graceful) {
   	ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 0, ap_server_conf,
  -		    "SIGWINCH received.  Doing graceful restart");
  +		    AP_SIG_GRACEFUL_STRING " received.  Doing graceful restart");
   
   	/* This is mostly for debugging... so that we know what is still
            * gracefully dealing with existing request.
  
  
  
  1.4       +2 -2      httpd-2.0/support/apachectl.in
  
  Index: apachectl.in
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/support/apachectl.in,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- apachectl.in	2001/05/09 15:56:50	1.3
  +++ apachectl.in	2001/09/18 22:13:59	1.4
  @@ -125,7 +125,7 @@
   	    fi
   	else
   	    if $HTTPD -t >/dev/null 2>&1; then
  -		if kill -WINCH $PID ; then
  +		if kill -@AP_SIG_GRACEFUL@ $PID ; then
   		    echo "$0 $ARG: httpd gracefully restarted"
   		else
   		    echo "$0 $ARG: httpd could not be restarted"
  @@ -161,7 +161,7 @@
                not running
   fullstatus - dump a full status screen; requires lynx and mod_status enabled
   status     - dump a short status screen; requires lynx and mod_status enabled
  -graceful   - do a graceful restart by sending a SIGWINCH or start if not running
  +graceful   - do a graceful restart by sending a @AP_SIG_GRACEFUL@ or start if not running
   configtest - do a configuration syntax test
   help       - this screen
   
  
  
  

Mime
View raw message