tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject DO NOT REPLY [Bug 50839] Closing connection on the client side (browser) during unfinished transmission result in 100% CPU slike for 30 sec during socket shutdownd in jk_connect.c
Date Mon, 16 May 2011 08:25:44 GMT

--- Comment #6 from Tim Whittington <> 2011-05-16 08:25:44 UTC ---
The trace log from Konstantin shows that the ISAPI Redirector is spending all
it's time in jk_shutdown_socket, calling jk_is_input_event - basically draining
all the AJP response packets (which will all be SEND_BODY_CHUNK packets).

The Java side of the AJP connector also blindly continues writing out an entire
chunk (across multiple SEND_BODY_CHUNK packets), and possibly across multiple
writes (I can't quite get my head around how an AJP response stream would be
terminated on a client abort on the HTTP side).

I think this behaviour was introduced when the socket shutdown was tidied up to
politely drain lingering bytes on the AJP connection before closing the socket
- in extreme cases this seems to allow the Java side to continue writing data.

I'm thinking at this point the simplest fix is to cap the amount of lingering
bytes the AJP reset will handle on the Tomcat Connector end, and simply close
the AJP connection if that is exceeded.

Configure bugmail:
------- You are receiving this mail because: -------
You are the assignee for the bug.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message