From 6d68beace5435f24abc4292f22021e4465b4dcee Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 13 May 2025 18:05:26 +0200 Subject: [PATCH] BUG/MINOR: mux-spop: Don't report error for stream if ACK was already received When a SPOP connection was closed or was in error, an error was systematically reported on all its SPOP streams. However, SPOP streams that already received their ACK frame must be excluded. Otherwise if an agent sends a ACK and close immediately, the ACK will be ignored because the SPOP stream will handle the error first. This patch must be backported to 3.1. --- src/mux_spop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mux_spop.c b/src/mux_spop.c index 2513c3078..c55074c24 100644 --- a/src/mux_spop.c +++ b/src/mux_spop.c @@ -1291,7 +1291,7 @@ static void spop_strm_wake_one_stream(struct spop_strm *spop_strm) spop_strm_close(spop_strm); } - if (spop_conn->state == SPOP_CS_CLOSED || (spop_conn->flags & (SPOP_CF_ERR_PENDING|SPOP_CF_ERROR))) { + if (!(spop_strm->flags & SPOP_SF_ACK_RCVD) && (spop_conn->state == SPOP_CS_CLOSED || (spop_conn->flags & (SPOP_CF_ERR_PENDING|SPOP_CF_ERROR)))) { se_fl_set_error(spop_strm->sd); spop_strm_propagate_term_flags(spop_conn, spop_strm); if (!spop_strm->sd->abort_info.info) { -- 2.47.2