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.