haproxy and tomcat intermittent hangs

Posted by Lorin on Server Fault See other posts from Server Fault or by Lorin
Published on 2009-09-08T04:54:06Z Indexed on 2010/04/03 14:03 UTC
Read the original article Hit count: 697

Filed under:
|
|

I am trying to run haproxy in front of tomcat on a Solaris x86 box, but I am getting intermittent failures. At seemingly random intervals, the request just hangs until haproxy times out the connection.

I thought maybe it was my app, but I've been able to reproduce it with the tomcat manager app, and hitting tomcat directly there is no problems at all.

Hitting it repeatedly with curl will cause the error within 10-15 tries

  curl -ikL http://admin:admin@<my server>:81/manager/status

haproxy is running on port 81, tomcat on port 7000. haproxy returns a 504 gateway timeout to the client, and puts this into the log file:

Sep  7 21:39:53 localhost haproxy[16887]: xxx.xxx.xxx.xxx:65168 [07/Sep/2009:21:39:23.005] http_proxy http_proxy/tomcat7000 5/0/0/-1/30014 504 194 - - sHNN 0/0/0/0/0 0/0 "GET /manager/status HTTP/1.1"

Tomcat shows nothing, no error in the logs and no indication that the request ever makes it to the tomcat server. The request count is not incremented, the manager app only shows activity on one thread, serving up the manager app.

Here are my haproxy and tomcat connector settings, I've been playing with both a good deal trying to chase down the issue, so they may not be ideal, but they definitely don't seem like they should cause this error.

server.xml

<Connector 
    port="7000" protocol="HTTP/1.1"
    enableLookups="false" maxKeepAliveRequests="1"
    connectionLinger="10"
/>

haproxy config

global
  log loghost local0
  chroot /var/haproxy

listen http_proxy :81
  mode http
  log global
  option httplog
  option httpclose
  clitimeout  150000
  srvtimeout  30000
  contimeout  3000 
  balance roundrobin
  cookie SERVERID insert
  server tomcat7000 127.0.0.1:7000 cookie server00 check inter 2000

© Server Fault or respective owner

Related posts about haproxy

Related posts about tomcat