You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Joel Parramore <pa...@homes.com> on 2003/07/29 22:18:20 UTC

[users@httpd] Problems with ssi exec processes hanging under Apache 2.0.4x


The past few weeks, we've seen processes start to accumulate and hang under
what appear to be only moderate loads.  The processes in question are
generated from SSI exec commands embedded in HTML pages.  The end result is
that the site appears to slow to a crawl --- these processes can hang for
several minutes.

When I truss the various processes, I usually see something like the
following:

write(1, " e = " V e r d a n a , A".., 976) (sleeping...)
signotifywait()                 (sleeping...)
door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)
lwp_cond_wait(0xFF393FC8, 0xFF393FD8, 0xFE283C90) (sleeping...)

(what appears on the second argument to the write varies).  Another such
truss (truss -l -p) gives

/1:     lwp_sema_wait(0xFDF0DE78)       (sleeping...)
/2:     signotifywait()                 (sleeping...)
/3:     write(1, " = 2   V S P A C E = 2 >".., 7132) (sleeping...)
/4:     lwp_cond_wait(0xFF393FC8, 0xFF393FD8, 0xFE285C38) (sleeping...)
/5:     door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)

Using gcore to generate cores of the running processes and doing a backtrace
just shows that a print statement was being called (I should mention that
these the programs in question are Pro-C codes).  So, it appears that the
process is attempting to print back a response, then halts and waits. Maybe.
The problem is that I don't know/can't tell just yet why the processes are
waiting, and on what... I feel as though I'm looking in the wrong places.

We're running Apache 2.0.47 on Solaris 7 (with all latest recommended
patches) across four dual-processor boxes (E220s).  Apache was compiled
using gcc 2.95.3 with two patches: a cgid daemon restart patch and a patch
to prevent a double close on a socket (problems encountered with the first).
I'm using the worker MPM with the following httpd.conf configuration:

<IfModule worker.c>
StartServers             2
MaxClients             150
#StartServers            5
#MaxClients            250
MinSpareThreads         25
MaxSpareThreads         75
ThreadsPerChild         25
MaxRequestsPerChild  10000
</IfModule>

The only compiled-in modules are 

  core.c
  worker.c
  http_core.c
  mod_so.c

Everything else is loaded as a DSO (if not commented out).

If this rings a bell somewhere for someone and/or if you have some advice
for how to further proceed with tracking this down, let me know.

Thanks in advance, and 

Regards,
Joel Parramore



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org