You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Sean Thorne <se...@gmail.com> on 2009/06/22 23:59:23 UTC

Apache Children Stuck on futex call

Hi,
	I've got some Apache Children that are getting stuck on a futex  
call.  This started happening on a Apache 2.2.6 worker w/ mod_per  
2.0.4 install, so I upgraded to Apache 2.2.11 worker w/ mod_perl 2.0.4  
and it still continues.  I have modules for proxy and php installed as  
well, but this problem only presents when using mod_perl and  
MaxRequestsPerChild.  If I remove mod_perl the Apache children close  
as expected.  It's easily replicated using an abusive ab test and  
turning down MaxRequestsPerChild.  I know I could turn off  
MaxRequestsPerChild, but I have that on to deal with PHP's poor thread  
handling and memory leaks.  I could switch to prefork, but the servers  
I have don't have enough RAM to handle the load I need them too.  Any  
help would be appreciated.

This child appears to be waiting for PID 3451, but that PID no longer  
exists.

[sthorne@81082-spare ~]$ sudo strace -p 3271
Process 3271 attached - interrupt to quit
futex(0x1b5bbe8, FUTEX_WAIT, 3451, NULL

Thanks,
Sean

Re: Apache Children Stuck on futex call

Posted by Perrin Harkins <ph...@gmail.com>.
On Mon, Jun 22, 2009 at 5:59 PM, Sean Thorne<se...@gmail.com> wrote:
> I could switch to prefork, but
> the servers I have don't have enough RAM to handle the load I need them too.

If you want to save RAM, you should run your mod_perl server in
prefork, which uses less memory due to copy-on-write sharing.  Then
run a reverse proxy in front of it to handle the static files and
buffering.

- Perrin