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.
This commit is contained in:
Willy Tarreau 2024-11-15 15:39:58 +01:00
parent 808a7cc777
commit 841be4cdd1

View File

@ -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;