You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by walt <to...@nea-fast.com> on 2007/01/12 22:51:41 UTC

Re: mod_jk - WARNING: processCallbacks status 2 - fixed

walt wrote:
> Hi,
> I'm having a problem with Apache,Tomcat, and mod_jk.
> Apache - 1.3.33
> Tomcat - 5.5.12
> mod_jk - 1.2.20
>
> We have a jsp web page which calls a servlet to load images. The 
> servlet gets the image by connecting to a java application running on 
> a seperate file server. Every now and then we get the error at the end 
> of this email.
>
> Using some stats from the this morning, the jsp page was called 263 
> times and the servlet 490 times in 38 minutes.  Out of the 490 times 
> the servlet was called, 10 of those generated errors. We have been 
> unable to reproduce this error on our test & dev systems.  On our dev 
> and test systems, we were able to call the jsp page 184 times and the 
> servlet 500 times in a little over a minute and did not get any 
> errors.  Everything had been working fine on our old production server 
> for 2+ years which used the same apache version but Tomcat 3.2.3 and 
> JDK1.2.2 .  The old production system  also used the AJP12 connection 
> protocol where the new system uses the AJP 1.3 connection protocol.
>
> Here's some info from the conf files. All load balancing stuff in 
> workers.properties is commented out.
>
> Thanks !
> walt
>
> server.xml
> <Connector port="8009"  enableLookups="false" protocol="AJP/1.3" />
>
> workers.properties
> worker.list=ajp13
> worker.ajp13.port=8009
> worker.ajp13.host=localhost
> worker.ajp13.type=ajp13
>
>
> Jan 10, 2007 8:54:33 AM org.apache.jk.core.MsgContext action
> WARNING: 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:508)
>        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:744)
>        at 
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674) 
>
>        at 
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866) 
>
>        at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) 
>
>        at java.lang.Thread.run(Thread.java:595)
> Jan 10, 2007 8:54:33 AM org.apache.jk.common.ChannelSocket 
> processConnection
> WARNING: processCallbacks status 2
>
>
> ---------------------------------------------------------------------
> 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
>
I hope this helps somebody -
The code in question also talks to a remote c++ app on another server. 
The socket errors were coming from that communication when "readln()" 
was called on the socket.  We have "readln()" in a wrapper function and 
adding "Thread.sleep(10);" before the actual readln() call on the socket 
stops the error.

walt


---------------------------------------------------------------------
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