On 2010-01-20 13:33, Ben Norris wrote:
Hi everyone
Hi,

I am having a little problem with setting up HAProxy loadbalancing in
front of several Glassfish servers. All of them apart from a single one
are reporting as DOWN according to the chkhttp health check. This was
puzzling as they respond perfectly well to a manual request with a 200
OK response.

We are using HAProxy 1.3.22 and Sun GlassFish Enterprise Server v2.1
(9.1.1) (build b60e-fcs)

I installed HAProxy 1.4-dev6 in order to get more info from the health
check failures which gave the info…

[WARNING] 014/171730 (22990) : Server argggggggh/server18080 is DOWN,
reason: Layer7 invalid response, info: "HTTP/1.1 ", check duration: 0ms.

This is not good. :(

This led me to run tcpdump to see what was going on. I tried against our
various different servers and all of these that work return HTTP/1.1 200
OK within the first packet. With the glassfish servers that respond as
down it returns the status in 3 separate packets - HTTP/1.1 , 200 and OK
and it seems that HAProxy is only using the first one.

So presumably this is a bug in HAProxy that isn't normally triggered?

Yep, all http servers we have seen so far return full status in one packet and the check code assumes such behavior. Probably it may also work with multiple packets if there is no PSH flag and packets can be received fast enough.

I can't find any information about why Glassfish is breaking up the
response. Has anyone come across this before? Can you suggest a
workaround or fix to the bahavior in either Glassfish or HAProxy?

I'll try to fix it but first I need to reproduce it. Would it be possible to provide me an access to such server?

Best regards,
                        Krzysztof Olędzki


Reply via email to