]> git.kaiwu.me - haproxy.git/commit
BUG/MEDIUM: mux-spop: do not enforce the timeout on connections with streams
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 10 Nov 2026 15:10:40 +0000 (16:10 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 12 Nov 2026 17:20:31 +0000 (18:20 +0100)
commit3032c82335d1b3cd077f1dca1fd738ee218eca20
treefb897e880215623b8273a92dc1aab782e25c3547
parent22758a4f40d94c0591933c8e494574e85ed1299e
BUG/MEDIUM: mux-spop: do not enforce the timeout on connections with streams

spop_conn_update_timeout() leaves the connection task unarmed while stream
connectors are attached, since the timeouts are then enforced by the upper
layer. But spop_attach() does not touch the task, so a connection which got
a timeout while it had no stream, for instance because of pending output
data or because of the default timeout applied to connections without
stream, keeps it once a new stream is attached. When it strikes,
spop_timeout_task() kills the connection and aborts the streams attached
to it, while nothing indicates that the agent is not responding.

As done for the H2 mux by commit c2ea47fb1 ("BUG/MEDIUM: mux-h2: do not
enforce timeout on long connections") and for the FCGI mux by commit
6e3bad2f3 ("BUG/MEDIUM: mux-fcgi: do not enforce the timeout on connections
with streams"), spop_timeout_task() now does not kill the connection when
stream connectors are still attached, it only disarms the timeout.

This should be backported to 3.1.
src/mux_spop.c