BUG/MINOR: server-state: Fix expiration date of srvrq_check tasks
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 11 Dec 2024 08:23:28 +0000 (09:23 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 11 Dec 2024 12:57:48 +0000 (13:57 +0100)
commit3746a7d0639ced74bb9f7cff79181be9a0f18e56
tree256a2b4c0cb3b03783e3fd39312882bcffd87c28
parenta7a47918df706f8ddb2c4dfafa730cc7bd45c42c
BUG/MINOR: server-state: Fix expiration date of srvrq_check tasks

"hold.timeout" was used as expiration date for srvrq_check tasks. But it is
not accurrate. The expiration date must be based on the resolution timeouts
instead (resolve and retry).

The purpose of srvrq_check task is to clean up the server resolution status
when outdated info are inherited from the state file. Using "hold.timeout"
is not accurrate here because hold timeouts concern the resolution response
items not the resolution status of servers. It may be set to a huge value or
0. The expiration date of these tasks must be based on the resolution
timeouts instead.

So now the ("timeout resolve" + resolve_retries * "timeout retry") value is
used.

This patch should fix the issue #2816. It must be backported to all stable
versions.

(cherry picked from commit 647a2906626e9c3d9c3349d338a35798325496f2)
Signed-off-by: Willy Tarreau <w@1wt.eu>
src/server_state.c