Return-Path: Delivered-To: new-httpd-archive@hyperreal.org Received: (qmail 26066 invoked by uid 6000); 2 Jun 1999 06:18:28 -0000 Received: (qmail 26057 invoked from network); 2 Jun 1999 06:18:27 -0000 Received: from twinlark.arctic.org (204.107.140.52) by taz.hyperreal.org with SMTP; 2 Jun 1999 06:18:27 -0000 Received: (qmail 1670 invoked by uid 500); 2 Jun 1999 06:18:25 -0000 Date: Tue, 1 Jun 1999 23:18:25 -0700 (PDT) From: Dean Gaudet To: new-httpd@apache.org Subject: sigalrm and such Message-ID: X-Comment: Visit http://www.arctic.org/~dgaudet/legal for information regarding copyright and disclaimer. MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org Graham, this could be related to your unkilled child problem... give the patch a try. I dunno, I always just suspect it's someone doing an alarm() or sleep() somewhere. But maybe that "someone" is a stupid solaris library bug (a few have been known to exist)... and not a 3rd party developer. Dean ---------- Forwarded message ---------- Date: Thu, 27 May 1999 13:52:35 -0700 From: Derek Andree To: Dean Gaudet Subject: Re: config/3906: Servers hang on either Keepalive or on Read (if keepalive is turned off) Dean, Yes indeed, this seems to fix the problem! I'll let you know if read or keepalives get stuck, but the server has been running now under heavy load for over 3 hours without a hitch... Thanks for your help! Dean Gaudet wrote: > > BTW, here's a patch you may want to try. It's just a wild guess though... > > Dean > > Index: main/http_main.c > =================================================================== > RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v > retrieving revision 1.430 > diff -u -r1.430 http_main.c > --- http_main.c 1999/04/20 19:15:39 1.430 > +++ http_main.c 1999/04/21 00:07:43 > @@ -3601,6 +3601,7 @@ > #endif > #endif > signal(SIGALRM, alrm_handler); > + signal(SIGUSR2, alrm_handler); > > #ifdef OS2 > /* Stop Ctrl-C/Ctrl-Break signals going to child processes */ > @@ -4105,7 +4106,7 @@ > else if (ps->last_rtime + ss->timeout_len < now) { > /* no progress, and the timeout length has been exceeded */ > ss->timeout_len = 0; > - kill(ps->pid, SIGALRM); > + kill(ps->pid, SIGUSR2); > } > } > #endif -- Derek Andree Mobile Village Development dxandr2@uswest.com Diplomacy is the art of saying "nice doggy" until you can find a rock.