Damien Corbishley wrote:
Hi Rainer,
Apache:
Server version: Apache/2.0.55
Server built:   Mar  5 2007 11:10:17
Server's Module Magic Number: 20020903:11

Yes, we are thinking about updating the Java, I was in the process of
checking the release notes to see if anything specific was mentioned.

Mod JK:
mod_jk/1.2.15

OK, 1.2.15 is a little antique. At the moment we reached 1.2.25.

Worker or prefork MPM? - I don't understand the question, sorry.

MPM = Multi processing module
prefork = multiple processes, but only one thread per process
worker = multiple processes with a couple of threads per process (default=25)

The strings prefork or worker are also cintained in the output of "httpd -V". Example:

...
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
...

<Connector port="8009"
               enableLookups="false" redirectPort="8443"
protocol="AJP/1.3"
               acceptCount="50"
               minSpareThreads="240"
               maxThreads="950"
               backlog="50"
               address="127.0.0.1"
               debug="0"
               />

You should have a connectionTimeout.

Tomcat is installed on the same machine as Apache.

With respect to the number of connections to the tomcat port I can't
give a complete answer - looking at the crash I can see there are around
4000 stuck at TIME_WAIT. Another 30 or so are at ESTABLISHED.

All of those 4000 TIME_WAIT for port 8009? That would be very much, indicating, that you are rapidly opening and closing the connections between Apache/mod_jk and tomcat. Those connections are supposed to be reused for some time.

The mod jk configuration:

This file only consits of comments?

## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
## WHEN YOU EDIT THE FILE.

## COMMENTS WILL BE _LOST_

## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.

# Set the desired handler list
# handler.list=apr,request,channelJni
#
# Override the default port for the socketChannel
# channelSocket.port=8019
# Default:
# channelUnix.file=${jkHome}/work/jk2.socket
# Just to check if the the config  is working
# shm.file=${jkHome}/work/jk2.shm

# In order to enable jni use any channelJni directive
# channelJni.disabled = 0
# And one of the following directives:

# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so

# If set to inprocess the mod_jk2 will Register natives itself
# This will enable the starting of the Tomcat from mod_jk2
# apr.jniModeSo=inprocess



bash-3.00# cat ./callflow-server/webserver/conf/workers.properties
workers.apache_log=/usr/local/apache2

This attribute never existed (so it's ignored).

workers.tomcat_home=/opt/tomcat
workers.java_home=/usr/j2se/

Thos two don't have a meaning any more.

worker.list= worker1

worker.worker1.type=ajp13

worker.worker1.host=127.0.0.1
worker.worker1.port=8009
worker.worker1.lbfactor=2.5

Not needed, if you are not using a JK load balancer. If you upgrade and later want to use a JK load balancer: newer JK versions use integer numbers here.

# Number of concurrent users.
worker.worker1.cachesize=950
worker.worker1.cache_timeout=600

So set connectionTimeout in the AJP connector (server.xml) to 600000 (Milliseconds).

worker.worker1.socket_timeout=300

Yes, I agree with you about contacting SUN, I'm digging out our service
plan at the moment.

I don't see a good reason, why you should get those error messages for this configuration. But you should update to a more recent mod_jk in order to research this problem from a better starting point (and maybe it will be gone).

Damien


-----Original Message-----
From: Rainer Jung [mailto:[EMAIL PROTECTED] Sent: Thursday, September 06, 2007 3:42 PM
To: Tomcat Users List
Subject: Re: mod_jk errors and http status code 503 under load

Damien Corbishley wrote:
Hi,

I'm getting stuck with an error we are seeing on our production
server under load.

We upgraded our combination of Apache,Tomcat,Java all running on
Solaris 10 to

Apache 2_2.0.55.build2

This doesn't sound like a real Apache httpd version. You can check the real version with "httpd -V" or when using log level info in the error log of httpd.

Worker or prefork MPM?

Tomcat 5.5.23

Java 1.5.0_06-b05

If you are in a general update situation, switch to 1.5.0_12 or whatever

seems to be recent and not only a couple days old.

And finally mod_jk-version?

Our Apache Tomcat connector is AJP/1.3.

What's the configuration of the connector element in server.xml?

It's all installed on the same server, we have no tomcat clusters and
no load balancers.

With a few (10) concurrent users accessing the various JSP's
everything worked as expected, all our functional tests passed.

We opened more up live traffic to the server and starting seeing the following error message:

[Thu Sep 06 02:23:00 2007] [error] ajp_service::jk_ajp_common.c
(1758): Error connecting to tomcat. Tomcat is probably not started or
is listening on the wrong port. worker=worker1 failed

Is Tomcat on the same machine, or on another one?

What do you get for "netstat -an| grep TOMCATPORT" where you replace TOMCATPORT with the port number your Tomcat AJP connector listens on?

How many ESTABLISHED, how many of other states (SYN_SENT, CLOSE_WAIT
etc.)?

What's you mod_jk configuration?

On the client side this was being reported as a 503 and our "intelligent" browser was re-submitting the request and generally,

on the second time, the request would be successful.

After an hour we then had a Solaris panic, and after analyzing the
crash using scat I can see that the cause was:

Solaris panic looks very bad. I would definitely open a bug with sun. I'm not saying that the original problem is there, but it is very unusual, that the whole system panics.

panic string:   BAD TRAP: type=9 rp=2a1015332d0 addr=0 mmu_fsr=0

and looking further into the trap, it seems to be network related.

<trap>ip:tcp_conn_request+0x894 (0x4, 0x2000, 0x136ec00,
0x3a2b9a44040, 0x40e03960300, 0x40dedc247c0)

ip:squeue_drain+0xe4 (0x300015ddec0, 0x40e2021c1c0, 0x411666de, 0x135f2c0, 0x3a2b9a44040, 0x3)

ip:squeue_enter+0x358 (0x300015ddec0, 0x38fca5e0d80, 0x3000426b640, 0x3a2bd674c00, 0x0, 0x1)

ip:tcp_wput - frame recycled



I am still trying to work out if the crash is a symptom of the
browsers resubmitting the failed requests and we've hit a Solaris bug
that we haven't got a patch for,

Or if the two errors are unrelated and it was coincidence that we panicked whilst having mod_jk errors.


Any help/pointers in resolving the mod_jk error would be appreciated,
I included the brief crash information as it may be relevant.

Thanks

Damien

Regards,

Rainer

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