]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: rhttp: fix reconnect if timeout connect unset
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 10 Apr 2025 16:05:55 +0000 (18:05 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 17 Apr 2025 12:49:36 +0000 (14:49 +0200)
Active connect on reverse http relies on connect timeout to detect
connection failure. Thus, if this timeout was unset, connection failure
may not be properly detected.

Fix this by fallback on hardcoded value of 1s for connect if timeout is
unset in the configuration. This is considered as a minor bug, as
haproxy advises against running with timeout unset.

This must be backported up to 2.9.

src/proto_rhttp.c

index b81589936315122f5166847ed931ffd36fe58461..c858febcf404add23142a859291d3f4053b4fff2 100644 (file)
@@ -288,7 +288,7 @@ struct task *rhttp_process(struct task *task, void *ctx, unsigned int state)
                l->rx.rhttp.pend_conn = conn;
 
                /* On success task will be woken up by H2 mux after reversal. */
-               l->rx.rhttp.task->expire = conn ?
+               l->rx.rhttp.task->expire = conn && tick_isset(srv->proxy->timeout.connect) ?
                  tick_add_ifset(now_ms, srv->proxy->timeout.connect) :
                  MS_TO_TICKS(now_ms + 1000);
        }