From 3f44b9407b889826ae5a83c8438b804da4a82750 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Mon, 21 Jul 2025 11:30:41 +0200 Subject: [PATCH] BUG/MEDIUM: dns: Reset reconnect tempo when connection is finally established The issue was introduced by commit 27236f221 ("BUG/MINOR: dns: add tempo between 2 connection attempts for dns servers"). In this patch, to delay the reconnection, a timer is used on the appctx when it is created. This postpones the appctx initialization. However, once initialized, the expiration time of the underlying task is not reset. So, it is always considered as expired and the appctx is woken up in loop. The fix is quite simple. In dns_session_init(), the expiration time of the appctx's task is alwaus set to TICK_ETERNITY. This patch must be backported everywhere the commit above was backported. So as far as 2.8 for now but possibly to all stable versions. --- src/dns.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dns.c b/src/dns.c index c0494ae0d..b8d488276 100644 --- a/src/dns.c +++ b/src/dns.c @@ -832,6 +832,7 @@ static int dns_session_init(struct appctx *appctx) applet_expect_no_data(appctx); ds->appctx = appctx; + appctx->t->expire = TICK_ETERNITY; return 0; error: