perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fred Moyer <f...@redhotpenguin.com>
Subject Re: Apache Children Stuck on futex
Date Thu, 27 Oct 2011 02:16:39 GMT
 Have you tried this with mod_perl 2.0.5, or 2.0.6-dev?  May have been resolved already. 


On Wednesday, October 26, 2011 at 3:06 PM, Max Barry wrote:

> 
> On 26/10/11 14:56, Max Barry wrote:
> > I'm trying to solve a long-running problem whereby my Apache mod_perl
> > processes get stuck in a "FUTEX_WAIT" state instead of exiting.
> > 
> > I believe this is the same issue as reported here:
> > http://www.gossamer-threads.com/lists/modperl/modperl/99879
> > 
> > The problem occurs fairly frequently following a burst of traffic, when
> > Apache spawns new processes, then attempts to cull them afterward. It
> > also occurred, before I disabled this, when Apache tried to cull a
> > process upon reaching MaxRequestsPerChild.
> 
> Further to this, I've found that the problem occurs even on a fresh
> Apache/mod_perl install; i.e. after completely removing Apache &
> mod_perl, including /etc/apache2/, and doing only this:
> 
>  1. sudo apt-get install apache2-mpm-worker libapache2-mod-perl2
> apache2-doc
> 
>  2. Edit the 'default' site thusly:
> 
> --- /etc/apache2/sites-available/default.original 2011-10-27
> 08:44:11.383803928 +1100
> +++ /etc/apache2/sites-available/default 2011-10-27 08:44:51.795391116 +1100
> @@ -19,6 +19,9 @@
>  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
>  Order allow,deny
>  Allow from all
> +
> + SetHandler perl-script
> + PerlResponseHandler ModPerl::RegistryBB
> </Directory>
> 
>  ErrorLog ${APACHE_LOG_DIR}/error.log
> 
>  3. Add a low 'MaxRequestsPerChild' directive (not strictly necessary,
> but makes the problem much more visible):
> 
> --- /etc/apache2/httpd.conf.original 2011-10-27 08:52:48.898361041 +1100
> +++ /etc/apache2/httpd.conf 2011-10-27 08:58:52.384091605 +1100
> @@ -0,0 +1 @@
> +MaxRequestsPerChild 10
> 
>  4. sudo /etc/init.d/apache2 restart
> 
>  5. ab -n 450 -c 175 http://localhost/cgi-bin/
> 
> This is ApacheBench, Version 2.3 <$Revision: 655654 $>
> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
> Licensed to The Apache Software Foundation, http://www.apache.org/
> 
> Benchmarking localhost (be patient)
> Completed 100 requests
> Completed 200 requests
> Completed 300 requests
> Completed 400 requests
> apr_poll: The timeout specified has expired (70007)
> Total of 426 requests completed
> 
> (The number "426" above varies: sometimes it's as low as 400, sometimes
> all requests complete. Usually, though, it's around 430.)
> 
> I've also established that:
> 
> * The problem occurs regardless of whether ModPerl::Registry,
> ModPerl::RegistryBB, or ModPerl::PerlRun is used.
> 
> * The problem occurs even when all Apache modules are disabled except
> for alias, authz_host, and mod_perl.
> 
> * The problem occurs even when no script is being run: i.e. Apache is
> asked for "/cgi-bin/nonexistentscript.cgi", or just "/cgi-bin/".
> 
> This is pretty perplexing.
> 
> Max.



Mime
View raw message