]> git.kaiwu.me - haproxy.git/commit
MINOR: server: mark backend removal as forbidden if QUIC was used
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 23 Feb 2026 11:01:39 +0000 (12:01 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 2 Mar 2026 13:08:30 +0000 (14:08 +0100)
commit5ddfbd4b030f70aec3a0dae1ea4aba385775c6a1
tree5350e1bc81c8289fdb1722dcd5cca191e7132d73
parent053887cc98f180ea2c1456536a3888e3a612da69
MINOR: server: mark backend removal as forbidden if QUIC was used

Currenly, quic_conn on the backend side may access their parent proxy
instance during their lifetime. In particular, this is the case for
counters update, with <prx_counters> field directly referencing a proxy
memory zone.

As such, this prevents safe backend removal. One solution would be to
check if the upper connection instance is still alive, as a proxy cannot
be removed if connection are still active. However, this would
completely prevent proxy counters update via
quic_conn_prx_cntrs_update(), as this is performed on quic_conn release.

Another solution would be to use refcount, or a dedicated counter on the
which account for QUIC connections on a backend instance. However,
refcount is currently only used by short-term references, and it could
also have a negative impact on performance.

Thus, the simplest solution for now is to disable a backend removal if a
QUIC server is/was used in it. This is considered acceptable for now as
QUIC on the backend side is experimental.
doc/management.txt
src/server.c