tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benoit Perroud" <benoit.perr...@elca.ch>
Subject Remote calls freeze until timeout
Date Fri, 12 Jun 2009 08:36:04 GMT
Hi, 

I experienced problems in my production infrastructure with remote
calls. Tomcat seams to do some http connections pooling, and some of the
connections seams to not to receive the TCP FIN flag of the server.

Below is a more detailed explanation of the detected problem. I don't
know where the problem come from (maybe APR lib), but I start to post
here with hope to be redirected to the right place if needed.

I use tomcat6.0.18, with APR connector on debian 4.0 (etch) (libapr1
1.2.7-8.2), hessian protocol for the remote calls. 

So I have a request from a browser which trigger a remote call. 

According to the dumped traffic, the remote calls are pooled, so tomcat
(apr?HttpClient?java.net?) reuse previous opened connection.
But what is strange, seen in the tcpdump, is that at one point the
connection receive a TCP FIN flag from the server, but use again the
open connection, then receive a TCP RST flag, and then the connections
freeze until the timeout of the connector.

In attachment is provided the tcpdump of the last request, followed by a
[FIN,ACK] of the server, and a new request from the client 3 seconds
later, resulting in a [RST] from the server.
And a second file which have the two freezed thread dumps.

As I do not use advanced sendFile or cometPoll feature, the workaround
for this problem was to explicitly disable APR connector, returning to
org.apache.coyote.http11.Http11Protocol.

Has someone already such problem ? Is this problem already known ?

Thanks in advance for your help

Mime
View raw message