]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: stconn: Don't queue stream task in past in sc_notify()
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 6 Nov 2023 07:57:06 +0000 (08:57 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 7 Nov 2023 09:32:25 +0000 (10:32 +0100)
A task must never be queued in past. However, in sc_notify(), the stream
task, if not woken up, is queued. Thanks to previous fixes, the stream task
expiration date should be correct. But to prevent any issue, a BUG_ON() is
added to be sure it never happens. I guess a good idea could be to remove it
or change it to BUG_ON_HOT() for the final release.

src/stconn.c

index 799cdafd3c34962345192884ae08aaaa8104ef0c..91c6eb728bb310e2ee3078f7d3fe070af1534ce2 100644 (file)
@@ -1146,6 +1146,8 @@ static void sc_notify(struct stconn *sc)
                task->expire = tick_first(task->expire, oc->analyse_exp);
                task->expire = tick_first(task->expire, __sc_strm(sc)->conn_exp);
 
+               /* WARNING: Don't forget to remove this BUG_ON before 2.9.0 */
+               BUG_ON(tick_is_expired(task->expire, now_ms));
                task_queue(task);
        }