]> git.ipfire.org Git - thirdparty/haproxy.git/commit
BUG/MINOR: resolvers: Don't wait periodic resolution on healthcheck failure
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 24 Oct 2022 06:59:59 +0000 (08:59 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 16 Nov 2022 08:27:09 +0000 (09:27 +0100)
commit68a61b63214d2514f793842b995df31ea46e8fd4
tree63e845d4875d670df787307c53cda7f95224a2b1
parent5a3d9a77e20a66796357627b1dd807a1b22603a5
BUG/MINOR: resolvers: Don't wait periodic resolution on healthcheck failure

DNS resoltions may be triggered via a "do-resolve" action or when a connection
failure is experienced during a healthcheck. Cached valid responses are used, if
possible. But if the entry is expired or if there is no valid response, a new
reolution should be performed. However, an resolution is only performed if the
"resolve" timeout is expired. Thus, when this comes from a healthcheck, it means
no extra resolution is performed at all.

Now, when the resolution is performed for a server (SRV or SRVEQ) and no valid
response is found, the resolution timer is reset (last_resolution is set to
TICK_ETERNITY). Of course, it is only performed if no resolution is already
running.

Note that this feature was broken 5 years ago when the resolvers code was
refactored (67957bd59e).

This patch should fix the issue #1906. It affects all stable versions. However,
it is probably a good idea to not backport it too far (2.6, maybe 2.4) and with
some delay.
src/resolvers.c