Hello everyone, I’ve reached out on Slack on the matter and got the info that the <interval> setting for redispatch only applies to session persistence, not connection failures which will redispatch after every retry regardless of the interval.
If it’s true, it would confirm my observations (using regular GET requests) that the redispatching happened after every retry, with intervals set at -1, 1 and even at 30. Can someone from the dev team confirm this? If it’s true it would be nice to reflect that in the docs, stating that the interval is only relevant for session persistence. Thanks, and happy new year to everyone! D From: Froehlich, Dominik <dominik.froehl...@sap.com> Date: Friday, 22. December 2023 at 15:13 To: haproxy@formilux.org <haproxy@formilux.org> Subject: Question regarding option redispatch interval You don't often get email from dominik.froehl...@sap.com. Learn why this is important<https://aka.ms/LearnAboutSenderIdentification> 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