Hello, I’m trying to enable retries with redispatch on my HAProxy (v2.7.11)
Here is my config for testing: defaults option redispatch retries 6 timeout connect 500ms frontend myfrontend bind :443 ssl crt /etc/cert/server.pem crt-list /crt-list default_backend test backend test server alice localhost:8080 server bob1 localhost:8081 server bob2 localhost:8083 server bob3 localhost:8084 server bob4 localhost:8085 server bob5 localhost:8086 So I have 6 servers in the backend, out of which only the “alice” server works. All of the “bob” servers don’t respond. When I run a request against HAProxy, it always works and I can observe using tcpdump that HAProxy will try each server (up to 6 times) until it hits the working “Alice” one. This is what I want, however the docs state otherwise: https://docs.haproxy.org/2.7/configuration.html?q=enable_redispatch#4.2-option%20redispatch <interval> The optional integer value that controls how often redispatches occur when retrying connections. Positive value P indicates a redispatch is desired on every Pth retry, and negative value N indicate a redispatch is desired on the Nth retry prior to the last retry. For example, the default of -1 preserves the historical behavior of redispatching on the last retry, a positive value of 1 would indicate a redispatch on every retry, and a positive value of 3 would indicate a redispatch on every third retry. You can disable redispatches with a value of 0. I did not provide any interval, so my assumption would be the default of -1 applies, which should mean “redispatching on the last retry”. So, I would expect that HAProxy would try e.g. “bob4” for 5 times, then select “bob5” for the 6th retry and ultimately fail and return a 503. But that’s not the behavior I observe. To me, it looks like the default “redispatch” value seems to be 1 instead of -1. Can someone provide guidance here? BR, Dominik