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.

Reply via email to