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.
This commit is contained in:
parent
1cd30c998b
commit
6d68beace5
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user