You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Martin Kautz <ma...@teambender.de> on 2006/10/18 20:37:10 UTC

mod_jk broken pipe

Hello list,

after wasting a few days to solve my problem using Google I ended up  
her. :-)
I've written a straight forward web store/shop (a front controller  
servlet using dbcp/mysql with a couple of jsps included conditionally).
I am using
Mac OS X 10.4.8, Tomcat 5.5.17, mod_jk 1.2.19, JavaSDK 5.0 and Apache  
1.3.33
As far as I can consider, the config (<Connector>, httpd.conf,  
workers.properties) is very close to the defaults.
The application itself seems to be okay. In fact the store is already  
online (even if driven by linux instead of mac os x) and serves a  
couple of hundred orders per day w/o worries.

I just wanted to know why a simple

ab -n2 -c2 http://q16.hq.martin.de/

makes a lot of noise (well one entry in this case) in my catalina.out
<snip>
18.10.2006 20:17:37 org.apache.jk.core.MsgContext action
WARNUNG: Error sending end packet
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:518)
         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:754)
         at org.apache.jk.common.ChannelSocket.processConnection 
(ChannelSocket.java:684)
         at org.apache.jk.common.ChannelSocket$SocketConnection.runIt 
(ChannelSocket.java:876)
         at org.apache.tomcat.util.threads.ThreadPool 
$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:613)
18.10.2006 20:17:37 org.apache.jk.common.ChannelSocket processConnection
WARNUNG: processCallbacks status 2
</snip>

If I do an
ab -n2 -c2 http://q16.hq.martin.de:8080/
the log file does not add such an entry.

What's wrong here? To me it seems that the connection between Apache  
and Tomcat is somewhat broken or at least not correct configured?

Sorry for my bad english and thx in advance,
Martin


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk broken pipe

Posted by Rainer Jung <ra...@kippdata.de>.
The broken pipe error generally means, that the client (browser/ab)
closed the connection before tomcat finished sending it's response.

Most often this happens, when an answer takes longer, than users
expect/tolerate and the users pressed refresh, stop etc. Possibly also,
if you use a short response timeout in mod_jk.

For ab I noticed unclean shutdown behaviour for the last request several
times. If it's a test system, start ab -c 10 -n 1000 and check if you
get the broken pipe 10 times. Then I would assume its an unclean ab
shutdown.

Between mod_jk 1.2.14 and 1.2.18 the detection of the broken pipe in
mod_jk was broken itself, so tomcat did not notice a connection abort
most of the time. We fixed that to reenable servlets to realize the
problem. Unfortunately the logging as an exception is not very nice,
something we could enhance.

Rainer

Martin Kautz schrieb:
> Hello list,
> 
> after wasting a few days to solve my problem using Google I ended up
> her. :-)
> I've written a straight forward web store/shop (a front controller
> servlet using dbcp/mysql with a couple of jsps included conditionally).
> I am using
> Mac OS X 10.4.8, Tomcat 5.5.17, mod_jk 1.2.19, JavaSDK 5.0 and Apache
> 1.3.33
> As far as I can consider, the config (<Connector>, httpd.conf,
> workers.properties) is very close to the defaults.
> The application itself seems to be okay. In fact the store is already
> online (even if driven by linux instead of mac os x) and serves a couple
> of hundred orders per day w/o worries.
> 
> I just wanted to know why a simple
> 
> ab -n2 -c2 http://q16.hq.martin.de/
> 
> makes a lot of noise (well one entry in this case) in my catalina.out
> <snip>
> 18.10.2006 20:17:37 org.apache.jk.core.MsgContext action
> WARNUNG: Error sending end packet
> 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:518)
>         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:754)
>         at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684)
> 
>         at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876)
> 
>         at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 
>         at java.lang.Thread.run(Thread.java:613)
> 18.10.2006 20:17:37 org.apache.jk.common.ChannelSocket processConnection
> WARNUNG: processCallbacks status 2
> </snip>
> 
> If I do an
> ab -n2 -c2 http://q16.hq.martin.de:8080/
> the log file does not add such an entry.
> 
> What's wrong here? To me it seems that the connection between Apache and
> Tomcat is somewhat broken or at least not correct configured?
> 
> Sorry for my bad english and thx in advance,
> Martin
> 
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: mod_jk broken pipe

Posted by Ra...@stj.gov.br.
Broken pipe errors are something that we want to debug too. Our enviroment 
is:
Tomcat 5.5.17,
 apache 2.2.3
 mod_proxy_ajp

Sometimes we have a broken pipe too. Under heavy load, it happens more 
times, but our server keeps serving with no problems. Any ideas?

Rafael Sarres de Almeida
Seção de Gerenciamento de Rede
Superior Tribunal de Justiça
Tel: (61) 3319-9342





Martin Kautz <ma...@teambender.de> 
18/10/2006 15:37
Favor responder a
"Tomcat Users List" <us...@tomcat.apache.org>


Para
users@tomcat.apache.org
cc

Assunto
mod_jk broken pipe






Hello list,

after wasting a few days to solve my problem using Google I ended up 
her. :-)
I've written a straight forward web store/shop (a front controller 
servlet using dbcp/mysql with a couple of jsps included conditionally).
I am using
Mac OS X 10.4.8, Tomcat 5.5.17, mod_jk 1.2.19, JavaSDK 5.0 and Apache 
1.3.33
As far as I can consider, the config (<Connector>, httpd.conf, 
workers.properties) is very close to the defaults.
The application itself seems to be okay. In fact the store is already 
online (even if driven by linux instead of mac os x) and serves a 
couple of hundred orders per day w/o worries.

I just wanted to know why a simple

ab -n2 -c2 http://q16.hq.martin.de/

makes a lot of noise (well one entry in this case) in my catalina.out
<snip>
18.10.2006 20:17:37 org.apache.jk.core.MsgContext action
WARNUNG: Error sending end packet
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:518)
         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:754)
         at org.apache.jk.common.ChannelSocket.processConnection 
(ChannelSocket.java:684)
         at org.apache.jk.common.ChannelSocket$SocketConnection.runIt 
(ChannelSocket.java:876)
         at org.apache.tomcat.util.threads.ThreadPool 
$ControlRunnable.run(ThreadPool.java:684)
         at java.lang.Thread.run(Thread.java:613)
18.10.2006 20:17:37 org.apache.jk.common.ChannelSocket processConnection
WARNUNG: processCallbacks status 2
</snip>

If I do an
ab -n2 -c2 http://q16.hq.martin.de:8080/
the log file does not add such an entry.

What's wrong here? To me it seems that the connection between Apache 
and Tomcat is somewhat broken or at least not correct configured?

Sorry for my bad english and thx in advance,
Martin


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org