Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Apache Tomcat »

Tomcat/AJP Client Abort Socket Errors - Leads to File Descriptor
Leak

Andrew Lee Rubinger

2007-07-26

Replies:

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 workers.properties 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
http://tomcat.apache.org/connectors-doc/reference/workers.html, 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.

S,
ALR

Attachment: mod_jk-excerpt.log
shell> lsof | grep java |grep protocol |cat -n

 1 java    29220  root 268u   sock           0,4         1320191 can't identify protocol

...

 206 java    29220  root 268u   sock           0,4         1320191 can't identify protocol
 207 java    29220  root 271u   sock           0,4         1311912 can't identify protocol
 208 java    29220  root 272u   sock           0,4         1314866 can't identify protocol
 209 java    29220  root 274u   sock           0,4         1318451 can't identify protocol
 210 java    29220  root 275u   sock           0,4         1316105 can't identify protocol
 211 java    29220  root 282u   sock           0,4         1317445 can't identify protocol
 212 java    29220  root 283u   sock           0,4         1320665 can't identify protocol
 213 java    29220  root 286u   sock           0,4         1320672 can't identify protocol
 214 java    29220  root 357u   sock           0,4         1312810 can't identify protocol
java.net.SocketException: Broken pipe
  at java.net.SocketOutputStream.socketWrite0(Native Method)
  at java.net.SocketOutputStream.socketWrite (SocketOutputStream.java:92)
  at java.net.SocketOutputStream.write (SocketOutputStream.java:136)
  at org.apache.jk.common.ChannelSocket.send (ChannelSocket.java:531)
  at org.apache.jk.common.JkInputStream.endMessage (JkInputStream.java:112)
  at org.apache.jk.core.MsgContext.action (MsgContext.java:293)
  at org.apache.coyote.Response.action (Response.java:182)
  at org.apache.coyote.Response.finish (Response.java:304)
  at org.apache.jk.server.JkCoyoteHandler.invoke (JkCoyoteHandler.java:204)
  at org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java:282)
  at org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java:767)
  at org.apache.jk.common.ChannelSocket.processConnection (ChannelSocket.java:697)
  at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
  at java.lang.Thread.run (Thread.java:595)
# Create 1 Worker
worker.list=worker1

# Worker 1 Properties
worker.worker1.type=ajp13
worker.worker1.host=192.168.10.10
worker.worker1.port=8009
worker.worker1.recovery_options=4

---------------------------------------------------------------------
To start a new topic, e-mail: users@(protected)
To unsubscribe, e-mail: users-unsubscribe@(protected)
For additional commands, e-mail: users-help@(protected)
©2008 junlu.com - Jax Systems, LLC, U.S.A.