tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Hopp <ji...@netyourwork.com>
Subject occasional ArrayIndexOutOfBoundsException in MsgAjp on linux
Date Thu, 26 Feb 2004 17:05:49 GMT
Greetings-

We're running Apache 2.0.48, JK 1.2.5, and Tomcat 4.1.29, java
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)
on Linux 2.4.20 with glibc 2.3.2 in a production environment.  We're
not using the LD_ASSUME_KERNEL export since we're not running glibc 2.2.

Two or three times a day, I'll see this exception in the Tomcat log:

Feb 13, 2004 12:43:00 PM org.apache.jk.common.HandlerRequest invoke
SEVERE: Error decoding request
java.lang.ArrayIndexOutOfBoundsException: 11968
     at org.apache.jk.common.MsgAjp.getInt(MsgAjp.java:233)
     at org.apache.jk.common.MsgAjp.getBytes(MsgAjp.java:257)
     at
org.apache.jk.common.HandlerRequest.decodeHeaders(HandlerRequest.java:676)
     at
org.apache.jk.common.HandlerRequest.decodeRequest(HandlerRequest.java:512)
     at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:365)
     at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:673)
     at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:615)
     at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:786)
     at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
     at java.lang.Thread.run(Thread.java:534)
12 34 05 17 02 02 00 08 48 54 54 50 2f 31 2e 31  | .4......HTTP/1.1
00 00 15 2f 69 6d 61 67 65 73 2f 72 65 6c 5f 74  | .../images/rel_t
61 73 6b 73 2e 67 69 66 00 00 0b 36 37 2e 31 36  | asks.gif...67.16
<snip>

In the jk log I'll see

[Fri Feb 13 12:43:00 2004]  [jk_ajp_common.c (738)]: ERROR: can't
receive the response message from tomcat, network problems or tomcat is
down. err=-104
[Fri Feb 13 12:43:00 2004]  [jk_ajp_common.c (738)]: ERROR: can't
receive the response message from tomcat, network problems or tomcat is
down. err=-1
[Fri Feb 13 12:43:00 2004]  [jk_ajp_common.c (1290)]: ERROR: Receiving
from tomcat failed, recoverable operation. err=0
[Fri Feb 13 12:43:00 2004]  [jk_ajp_common.c (1290)]: ERROR: Receiving
from tomcat failed, recoverable operation. err=0

The Apache child process then becomes unresponsive, and Apache starts
another child process to service requests.  The first child process
immediately sucks up all of a CPU (we're running on a four-CPU box), and
doesn't die until we restart Apache.  Tomcat keeps going.

The user simply hits refreshs their page, and this time the request goes
through.

Other than this, everything works great.

I cannot find any mention of this error in Bugzilla or thru Google.

Here's my workers.properties, and jk conf files:

workers.properties:
worker.list=ui, mrkt

worker.ui.type=ajp13
worker.ui.host=127.0.0.1
worker.ui.port=8019
worker.ui.cachesize=10
worker.ui.cache_timeout=600
worker.ui.connect_timeout=500
worker.ui.prepost_timeout=500

worker.mrkt.type=ajp13
worker.mrkt.host=127.0.0.1
worker.mrkt.port=8029
worker.mrkt.cachesize=10
worker.mrkt.cache_timeout=600
worker.mrkt.connect_timeout=500
worker.mrkt.prepost_timeout=500

jk1.conf: (gets included in a vhost section):
JkOptions -ForwardKeySize -ForwardDirectories -ForwardURICompat 
+ForwardURICompatUnparsed

# note that the last JkLogFile set applies to all vhosts, not just this one.
JkLogFile /var/log/httpd/jk-ui.log
JkLogLevel info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkRequestLogFormat set the request format
#JkRequestLogFormat "%w %V %T"
JkRequestLogFormat "%V %U %w %s %b %T"

JkMount /* ui

jk2.conf (included in another vhost):
JkOptions -ForwardKeySize -ForwardDirectories -ForwardURICompat 
+ForwardURICompatUnparsed
# note that the last JkLogFile set applies to all vhosts, not just this one.
JkLogFile /var/log/httpd/jk.log
JkLogLevel info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkRequestLogFormat set the request format
#JkRequestLogFormat "%w %V %T"
JkRequestLogFormat "%V %U %w %s %b %T"

JkMount /demoRegistration/mail.servlet mrkt
JkMount /demoRegistration/ping.servlet mrkt
JkMount /freeQBTrial/mail.servlet mrkt
JkMount /freeQBTrial/ping.servlet mrkt
JkMount /talkToUs/mail.servlet mrkt
JkMount /talkToUs/ping.servlet mrkt
JkMount /buyIt/mail.servlet mrkt
JkMount /buyIt/ping.servlet mrkt
JkMount /qbupload/qbupload.servlet mrkt
JkMount /qbupload/ping.servlet mrkt

I'd be grateful for any ideas/comments/things to try.

-Jim Hopp

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message