From: Amaury Denoyelle Date: Fri, 3 Jan 2025 09:36:39 +0000 (+0100) Subject: BUG/MINOR: mux-quic: fix wakeup on qcc_set_error() X-Git-Tag: v3.1.2~6 X-Git-Url: http://git.haproxy.org/?a=commitdiff_plain;h=a240d74f4593429ce216eb95b2e52b42c2e2cb27;p=haproxy-3.1.git BUG/MINOR: mux-quic: fix wakeup on qcc_set_error() The following patch was a major refactoring of QUIC MUX. It removes pacing specific code path. In particular, qcc_wakeup() utility function was removed and replaced by its tasklet_wakup() usage. 41f0472d967b2deb095d5adc8a167da973fbee3d MEDIUM: mux-quic: remove pacing specific code on qcc_io_cb However, an incorrect substitution was performed in qcc_set_error(). As such, there was no explicit wakeup in case an error is detected by QUIC MUX or the app protocol layer. This may lead to missing error reporting to clients. Fix this by re-add tasklet_wakup() usage into qcc_set_error(). This must be backported up to 3.1 where above patch is scheduled. (cherry picked from commit 4f2554903b1449a31bb30097311cb6fa86632338) Signed-off-by: Christopher Faulet --- diff --git a/src/mux_quic.c b/src/mux_quic.c index 3724274..c0b35e2 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -743,7 +743,7 @@ void qcc_set_error(struct qcc *qcc, int err, int app) * is too tedious too not forget a wakeup outside of this function for * the moment. */ - HA_ATOMIC_AND(&qcc->wait_event.tasklet->state, ~TASK_F_USR1); + tasklet_wakeup(qcc->wait_event.tasklet); } /* Increment glitch counter for connection by steps. If configured