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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

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

Reply via email to