From: Amaury Denoyelle Date: Wed, 19 Nov 2025 10:40:40 +0000 (+0100) Subject: BUG/MINOR: quic: do not decrement jobs for backend conns X-Git-Tag: v3.3-dev14~35 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=46c5c232d72e9c2f193f654bc5b7529e02441fce;p=thirdparty%2Fhaproxy.git BUG/MINOR: quic: do not decrement jobs for backend conns jobs is a global counter which serves to account activity through the whole process. Soft-stop procedure will wait until this counter is resetted to the nul value. jobs is not used for backend connections. Thus, it is not incremented when a QUIC backend connection is instantiated as expected. However, decrement is performed on all sides during quic_conn_release(). This causes the counter wrapping. Fix this by decrementing jobs only for frontend connections. Without this patch, soft stop procedure will hang indefinitely if QUIC backend connections were in use. --- diff --git a/src/quic_conn.c b/src/quic_conn.c index 12532594a..2a82484d7 100644 --- a/src/quic_conn.c +++ b/src/quic_conn.c @@ -1554,7 +1554,7 @@ int quic_conn_release(struct quic_conn *qc) ret = 1; } - if (qc_test_fd(qc)) + if (!qc_is_back(qc) && qc_test_fd(qc)) _HA_ATOMIC_DEC(&jobs); /* Close quic-conn socket fd. */