From: Christopher Faulet Date: Tue, 26 Jul 2022 17:14:36 +0000 (+0200) Subject: MINOR: peers: Use a dedicated reconnect timeout when stopping the local peer X-Git-Tag: v2.7-dev3~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ab4b094055fee113e91149426035c9ff7b35b2b0;p=thirdparty%2Fhaproxy.git MINOR: peers: Use a dedicated reconnect timeout when stopping the local peer When a process is stopped or reload, a dedicated reconnect timeout is now used. For now, this timeout is not used because the current code retries immediately to reconnect to perform the local synchronization with the new local peer, if any. This patch is required to fix the issue #1799. It should be backported as far as 2.0 with next fixes. --- diff --git a/src/peers.c b/src/peers.c index 41cf7d829d..f9d8077ff2 100644 --- a/src/peers.c +++ b/src/peers.c @@ -102,6 +102,7 @@ #define PEER_RESYNC_TIMEOUT 5000 /* 5 seconds */ #define PEER_RECONNECT_TIMEOUT 5000 /* 5 seconds */ +#define PEER_LOCAL_RECONNECT_TIMEOUT 500 /* 500ms */ #define PEER_HEARTBEAT_TIMEOUT 3000 /* 3 seconds */ /* flags for "show peers" */ @@ -3200,7 +3201,7 @@ static struct appctx *peer_session_create(struct peers *peers, struct peer *peer int idx; peer->new_conn++; - peer->reconnect = tick_add(now_ms, MS_TO_TICKS(PEER_RECONNECT_TIMEOUT)); + peer->reconnect = tick_add(now_ms, (stopping ? MS_TO_TICKS(PEER_LOCAL_RECONNECT_TIMEOUT) : MS_TO_TICKS(PEER_RECONNECT_TIMEOUT))); peer->heartbeat = TICK_ETERNITY; peer->statuscode = PEER_SESS_SC_CONNECTCODE; peer->last_hdshk = now_ms;