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.
This commit is contained in:
Amaury Denoyelle 2025-11-19 11:40:40 +01:00
parent 1a22caa6ed
commit 46c5c232d7

View File

@ -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. */