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