From 841be4cdd15b3d0834a478cc95ebda0f47171b4d Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 15 Nov 2024 15:39:58 +0100 Subject: [PATCH] BUG/MEDIUM: mailers: make sure to always apply offsets to now_ms in expiration Now_ms can be zero nowadays, so it's not suitable for direct assignment to t->expire, as there's a risk that the timer never wakes up once assigned (TICK_ETERNITY). Let's use tick_add(now_ms, 0) for an immediate wakeup instead. The impact here might be mailers suddenly stopping. This should be backported where it applies. --- src/mailers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mailers.c b/src/mailers.c index 50f1e76d3b..1e61842f4f 100644 --- a/src/mailers.c +++ b/src/mailers.c @@ -80,7 +80,7 @@ static struct task *process_email_alert(struct task *t, void *context, unsigned alert = LIST_NEXT(&q->email_alerts, typeof(alert), list); LIST_DELETE(&alert->list); - t->expire = now_ms; + t->expire = tick_add(now_ms, 0); check->tcpcheck_rules = &alert->rules; check->status = HCHK_STATUS_INI; check->state |= CHK_ST_ENABLED; -- 2.47.2