From f66bfcff96082ce5c98c635c5da7a9ba157a20af Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 15 Nov 2024 15:41:21 +0100 Subject: [PATCH] BUG/MINOR: mux_quic: 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 looks nul since the task is also woken up, but better not leave such tasks in the timer tree anyway. This should be backported where it applies. --- src/mux_quic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mux_quic.c b/src/mux_quic.c index d704403d3..80f4eff2d 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -366,7 +366,7 @@ static void qcc_refresh_timeout(struct qcc *qcc) /* We are past the soft close window end, wake the timeout * task up immediately. */ - qcc->task->expire = now_ms; + qcc->task->expire = tick_add(now_ms, 0); task_wakeup(qcc->task, TASK_WOKEN_TIMER); } }