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