Hello,
As the title says, I am seeking clarification on what to expect when using
timeout connect and option redispatch within a particular backend in
HAProxy 2.9.
Let's say that I have this configuration for defaults:
defaults
timeout connect 55s
timeout client 52s
timeout server 50s
timeout queue 4s
mode http
And then I have a backend like this:
backend MyBackend
balance roundrobin
timeout connect 1s
option redispatch 2
server s1 127.0.0.1:5555
server s2 127.0.0.1:6666
server s3 127.0.0.1:7777
Let's say that one of those servers is down. Based on my reading of the
documentation, what I would think would happen is:
1. The request is sent and HAProxy tries to connect to the downstream
server for 1s.
2. It fails and the request is redispatched to another server in the
backend, which would hopefully be successful.
What I've observed:
1. The timeout connect config has no effect - I could set it to 5s, 700ms,
etc., but the request is always redispatched immediately.
2. I do see a "+2" in the %rc field in the logs, so it does seem that the
request was retried twice, which would align with "option redispatch 2".
3. If I remove option redispatch but keep the timeout configuration, the
connect timeout is still seemingly not respected.
Any ideas as to why the timeout value does not appear to work when placed
in a backend section would be great. Thank you for your time.