Skip to content

Commit 6d68bea

Browse files
committed
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.
1 parent 1cd30c9 commit 6d68bea

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/mux_spop.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1291,7 +1291,7 @@ static void spop_strm_wake_one_stream(struct spop_strm *spop_strm)
12911291
spop_strm_close(spop_strm);
12921292
}
12931293

1294-
if (spop_conn->state == SPOP_CS_CLOSED || (spop_conn->flags & (SPOP_CF_ERR_PENDING|SPOP_CF_ERROR))) {
1294+
if (!(spop_strm->flags & SPOP_SF_ACK_RCVD) && (spop_conn->state == SPOP_CS_CLOSED || (spop_conn->flags & (SPOP_CF_ERR_PENDING|SPOP_CF_ERROR)))) {
12951295
se_fl_set_error(spop_strm->sd);
12961296
spop_strm_propagate_term_flags(spop_conn, spop_strm);
12971297
if (!spop_strm->sd->abort_info.info) {

0 commit comments

Comments
 (0)