You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Dean Gaudet <dg...@arctic.org> on 1997/09/13 08:30:07 UTC

Re: general/1072: http servers die until only one left in process list (fwd)

The following reply was made to PR general/1072; it has been noted by GNATS.

From: Dean Gaudet <dg...@arctic.org>
To: apbugs@apache.org
Subject: Re: general/1072: http servers die until only one left in process list (fwd)
Date: Fri, 12 Sep 1997 23:31:09 -0700 (PDT)

 
 
 
 ---------- Forwarded message ----------
 Date: Fri, 12 Sep 1997 22:10:20 -0600 (MDT)
 From: TST System Administrator <ad...@TST-MedHat.com>
 To: dgaudet@hyperreal.org
 Cc: apache-bugdb@apache.org
 Subject: Re: general/1072: http servers die until only one left in process list
 
 Parent process is alive and running.  It doesn't die, it is the only 
 process left running.
 
 I have a cron job that counts the number of httpd processes and then 
 restarts the main process by using the following if the count is to low.
 
    kill -HUP `cat /var/run/httpd.pid` 
 
 I will run the strace command and see what else is happening.
 
 This has happened twice in the last day.  It seems to be intermittent.  
 Sep 06 it happened 6 times while twice between then and today.
 
 
 This is what I see when I run the strace -p 
 
    --- SIGALRM (Alarm clock) ---                                
    sigreturn()                             = ? (mask now [ALRM])
    time(NULL)                              = 874122780          
    sigaction(SIGALRM, {SIG_DFL}, NULL)     = 0                  
    alarm(0)                                = 0                  
    sigprocmask(SIG_SETMASK, [], NULL)      = 0                  
    wait4(-1, NULL, WNOHANG, NULL)          = 0                  
    sigprocmask(SIG_BLOCK, [ALRM], [])      = 0                  
    sigaction(SIGALRM, {0x40082ef0, [], 0}, {SIG_DFL}) = 0       
    time(NULL)                              = 874122780          
    alarm(1)                                = 0                  
    sigsuspend([] <unfinished ...>                               
 
 and it just repeats.
 
 Here is strace -i -p 305
 
 
 [40082d88] --- SIGALRM (Alarm clock) ---
 [40082ef0] <... sigsuspend resumed> )   = -1 EINTR (Interrupted system call)
 [bffffca4] sigreturn()                  = ? (mask now [ALRM])
 [4009823a] time(NULL)                   = 874123584
 [4002e627] sigaction(SIGALRM, {SIG_DFL}, NULL) = 0
 [4002fd7a] alarm(0)                     = 0
 [4002e70c] sigprocmask(SIG_SETMASK, [], NULL) = 0
 [4002ed43] wait4(-1, NULL, WNOHANG, NULL) = 0
 [4002e70c] sigprocmask(SIG_BLOCK, [ALRM], []) = 0
 [4002e627] sigaction(SIGALRM, {0x40082ef0, [], 0}, {SIG_DFL}) = 0
 [4009823a] time(NULL)                   = 874123584
 [4002fd7a] alarm(1)                     = 0
 [40082d88] sigsuspend([] <unfinished ...>
 
 
 >From our httpd.conf
 
 StartServers 15
 MinSpareServers 10
 MaxSpareServers 30
 
 Hope this helps.
 
 
 TST Consulting Inc.             |  Voice: 403.529.1560         |
 Box 1599 C153                   |   Fax: 403.526.1560          |
 Medicine Hat, Alberta, Canada   |  Office: 877 17 Street SW    |
 T1A 7Y5                         |  Email: admin@TST-MedHat.com |
 
 
 
 On Fri, 12 Sep 1997 dgaudet@hyperreal.org wrote:
 
 > Synopsis: http servers die until only one left in process list
 > 
 > State-Changed-From-To: open-analyzed
 > State-Changed-By: dgaudet
 > State-Changed-When: Fri Sep 12 16:49:31 PDT 1997
 > State-Changed-Why:
 > This sounds like you're killing the parent process somehow.
 > Possibly a cron job or something.  The parent is responsible
 > for spawning more children ... and I haven't seen this problem
 > on other linux boxes yet.
 > 
 > If you are absolutely certain the parent is still running
 > (take a look in logs/httpd.pid to find out the parent's pid)
 > then try running "strace -p <pid>" against it to see what 
 > it's up to.
 > 
 > Dean
 >