haproxy/include
Frederic Lecaille 503440534f BUG/MEDIUM: quic: non initialized app ops during backend 0-RTT session
This bug impacts only QUIC backend.
There was a race conditiion due to the way the cached ALPNs needed for
0-RTT sessions are reused. A first thread could see no cached ALPN
leading the app ops to be non initialized. This is normal. Then a second
thread with enough CPU ressource could successfully complete its handshake
and cached the ALPN (in the underlying server struct). When the first
thread comes back to connect_server(), its mux is initialized because
an cached ALPN value is availble, leading to a crash because of the
app ops which are not initialized for this connection.

The app ops, ALPN reuse and transport parameters were added to
ssl_sock_srv_try_reuse_sess() by this commit

   MEDIUM: quic-be: modify ssl_sock_srv_try_reuse_sess() to reuse backend
           sessions (0-RTT)

This patch reverts these modifications. This is a good thing because
this function returns to its original goal: reuse a SSL session (with or
without 0-RTT). That's it!

The mux is modified to set the app ops it not already when it called.
This is done by qcc_install_app_ops(). The call to this function has been
move before setting the transport parameters for the flow control.
Indeed, some paramaters have also been cached to be reused for the 0-RTT
sessions.

Must be backported to 3.3.
2026-02-18 10:50:59 +01:00
..
haproxy BUG/MEDIUM: quic: non initialized app ops during backend 0-RTT session 2026-02-18 10:50:59 +01:00
import CLEANUP: assorted typo fixes in the code, commits and doc 2025-12-25 19:45:29 +01:00
make BUILD: makefile: add a qinfo macro to pass info in quiet mode 2025-01-08 11:26:05 +01:00