tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <>
Subject Re: Tomcat/AJP Client Abort Socket Errors - Leads to File Descriptor Leak
Date Thu, 26 Jul 2007 19:14:11 GMT
Andrew Lee Rubinger wrote:
> Hi.
> I am running Apache HTTPD 2.2.4 with ModJK 1.2.21, both compiled from 
> source on CentOS 4.4.  I have a file configured to 
> send requests to Tomcat 5.5 on a separate machine within the internal 
> network.
> When receiving a ClientAbortException from Tomcat (shown in 
> "tomcat_broken_pipe_error.txt"), it seems that the socket connection 
> between ModJK and Tomcat is not closed out, and on the Application 
> Server running Tomcat I'm observing a Life Descriptor leak (as shown in 
> "lsof.txt").
> I've tried setting "recovery_options" to 4 as suggested by 
>, but this 
> has not corrected the problem.
> Have attached all relevant log excerpts and configurations in hopes that 
> someone has come across this and might have some insight.
> Thanks in advance for your help.  Will be happy to provide any other 
> information I may have excluded.

Do you have special evidence, that the broken piepe errors correlate to 
the increase in file descriptors? Or are you only assuming this, because 
you can't find any other errors in the logs?

Can you see the connections for the file descriptors on the Apache 
machine and on the Tomcat machine (using netstat)? Are they in the same 
state? Which state?

At the moment I see no correlation between the client abort and a lost 
backend connection. There is another possible issue, if the file 
descriptor leak happens during tiume of low load. Since we just had a 
post about this on the list, I'm simply citing my last answer from 
another mail. Even if you think this does not apply to you, you should 
read the document the text refers to:


If your analysis is correct, it's a known problem, that firewalls often 
drop idle connections, so mod_jk and Tomcat should both be configured to 
shut down idle connections. On the Tomcat side you should use the 
attribute connectionTimeout in the configuration of your AJP Connector 
in server.xml. The units are in milliseconds, so 10 Minutes would be 
600000. On the mod_jk side you should use connection_pool_timeout, units 
are seconds, so 10 minutes are 600.

We have a new docs page about these things, which will go live next week 
with our 1.2.24 release. There is a preview for the page under

The next release 1.2.24 will include some improvements for this 
situation, but you would still need the timeouts on both ends.




To start a new topic, e-mail:
To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message