This may more to due with Rabbit (or AMPQ clients) than HAProxy. Do you have Rabbit 01 and 02 in a cluster or are they separate nodes?
On Jan 16, 2014, at 11:28 PM, Andrei Chevenkov <[email protected]> wrote: > Hi, > > I am pretty new to haproxy and trying to do ha setup for rabbitmq. > > Setup is pretyt simple: > > listen rabbitmq 192.168.69.106:5672 > mode tcp > balance leastconn > option tcplog > option tcpka > server rabbit01 192.168.69.107:5672 check inter 1000 downinter 5000 fall 1 > on-error mark-down > server rabbit02 192.168.69.108:5672 check inter 1000 downinter 5000 fall 1 > on-error mark-down backup > > Everything seems to work well, but I noticed one strange behaviour. If I > gracefully shut down rabbit01, message producer (client) connected to > 192.168.69.106:5672 notices broken connection pretty much straight away, > attempts a reconnect, hits rabbit02 and all is well. > > However if I simply "turn off" rabbit01, message producer (client) notices > broken connection only in around 30 seconds or so. And while the break is > undetected it keeps pushing messages thinking there is still someone on > another side. > > Now, from the statistic report I can see that as soon as I turn off the box, > rabbit01 is marked as "DOWN", but its "Sessions Current" is still set to 1? > In the logs this comes up pretty much immediately after the hard turn off: > > Jan 17 17:13:51 prodlb01 haproxy[38459]: Server rabbitmq/rabbit01 is DOWN, > reason: Layer4 timeout, check duration: 1008ms. 0 active and 1 backup servers > left. Running on backup. 1 sessions active, 0 requeued, 0 remaining in queue. > > After around 30 seconds, the connection is detected as broken and failover > happens successfully. At that time "Sessions Current" is set to 0 fo > rabbit01. > > Tried option nolinger and option abortonclose, but no luck. > > Any help would be much appreciated... > > Cheers, > Andrei

