]> git.ipfire.org Git - thirdparty/haproxy.git/commit
Revert "BUG/MEDIUM: mux-spop: Handle CLOSING state and wait for AGENT DISCONNECT...
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 6 May 2025 11:43:59 +0000 (13:43 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 6 May 2025 11:43:59 +0000 (13:43 +0200)
commita3ce7d77722b3d2bc4c8d9bff31d2805ecb32f87
tree099170585ab5c5b2144eaccc3c19470c1fe7e958
parentb39825ee45150415d7ed64b7ce785bb946f727bd
Revert "BUG/MEDIUM: mux-spop: Handle CLOSING state and wait for AGENT DISCONNECT frame"

This reverts commit 53c3046898633e56f74f7f05fb38cabeea1c87a1.

This patch introduced a regression leading to a loop on the frames
demultiplexing because a frame may be ignore but not consumed.

But outside this regression that can be fixed, there is a design issue that
was not totally fixed by the patch above. The SPOP connection state is mixed
with the status of the frames demultiplexer and this needlessly complexify
the connection management. Instead of fixing the fix, a better solution is
to revert it to work a a proper solution.

For the record, the idea is to deal with the spop connection state onlu
using 'state' field and to introduce a new field to handle the frames
demultiplexer state. This should ease the closing state management.

Another issue that must be fixed. We must take care to not abort a SPOP
stream when an error is detected on a SPOP connection or when the connection
is closed, if the ACK frame was already received for this stream. It is not
a common case, but it can be solved by saving the last known stream ID that
recieved a ACK.

This patch must be backported if the commit above is backported.
src/mux_spop.c