From: Willy Tarreau Date: Fri, 15 Nov 2024 14:39:58 +0000 (+0100) Subject: BUG/MEDIUM: mailers: make sure to always apply offsets to now_ms in expiration X-Git-Tag: v3.1-dev13~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=841be4cdd15b3d0834a478cc95ebda0f47171b4d;p=thirdparty%2Fhaproxy.git 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. --- 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;