2

So I have this tomcat based webapp. Part of this webapp lets you upload a file that then is checked against a backend database. This process takes a long time, up to 15 minutes in some cases. Now the rub is that I'm getting timeouts at the 5 minute mark when I run this process through apache, but not when I run it directly against tomcat. And then it gets even stranger because the process works fine through chrome even through the proxy. IE and FF choke on it though, both at the 5 minute mark. Looking at the network traffic, it looks like the client-side is sending the TCP disconnect and killing the connection.

(To Summarize)

Directly against tomcat via HTTP:

  • IE: Good
  • FF: Good
  • CH: Good

Through the proxy via HTTP/HTTPS:

  • IE: 5M timeout
  • FF: 5M timeout
  • CH: Good

Since it works via chrome, I'm tempted to think it's an IE/FF issue. But since it works via IE/FF when bypassing the proxy, I'm inclined to think it's a proxy issue. And in either case, I'm stumped. And people are starting to murmur. So anyone have any thoughts about why this is happening? I'm happy to post any necessary log/conf files...

My Proxy is config'd as follows:

ProxyPass /unit ajp://appserver:8100/unit timeout=1800

ProxyPassReverse /unit ajp://appserver:8100/unit

EDIT: Adding versions:

  • Apache 2.2.3
  • Tomcat 5.5.27
  • IE 8
  • FF 4
  • Chrome 12

EDIT 2: Adding Traffic Sample:

This was taken from the server (10.122.39.81).

17:01:49.048093 IP 10.3.0.50.10448 > 10.122.39.81.443: . 102019:103231(1212) ack 146 win 65303
17:01:49.048531 IP 10.122.39.81.443 > 10.3.0.50.10448: . ack 103231 win 65535
17:01:49.048583 IP 10.3.0.50.10448 > 10.122.39.81.443: . 103231:104443(1212) ack 146 win 65303
17:01:49.048685 IP 10.3.0.50.10448 > 10.122.39.81.443: P 104443:105633(1190) ack 146 win 65303
17:01:49.048690 IP 10.122.39.81.443 > 10.3.0.50.10448: . ack 105633 win 65535
17:05:26.337167 IP 10.3.0.50.10448 > 10.122.39.81.443: R 2183272713:2183272713(0) ack    1747376881 win 9300

As you can see, the end of connection signal comes from the client, rather than the server. Normally, I would just say "ok, this is a client-side issue". The only thing that keeps me from that is the fact that the same exact process is successful when accessing the tomcat server directly via port 8001.

At this point, My thoughts are:

  • Proxy server isn't configured properly but in some strange way that sets a timeout on the client side

OR

  • It's a client-side issue, but for some reason it only affects traffic over port 80 or port 443.
Dan R
  • 255
  • 1
  • 3
  • 13
  • **Looking at the network traffic, it looks like my computer is the one killing the connection.** -- I assume both the client and server a yours, can you fix that statement to make it more clear about where you expect the problem is? It might help if you can post a fragment of the capture that you used to make that determination. – Zoredache May 26 '11 at 20:50
  • @Zoredache - I added some traffic logs. And to clarify, the client-side is killing the connection. – Dan R May 26 '11 at 21:14

0 Answers0