BUG/MEDIUM: connections: Only avoid creating a mux if we have one

In connect_server(), only avoid creating a mux when we're reusing a
connection, if that connection already has one. We can reuse a
connection with no mux, if we made a first attempt at connecting to the
server and it failed before we could create the mux (or during the mux
creation). The connection will then be reused when trying again.
This fixes a bug where a stream could stall if the first connection
attempt failed before the mux creation. It is easy to reproduce by
creating random memory allocation failure with -dmFail.
This was introduced by commit 4aaf0bfbce,
and thus does not need any backport as long as that commit is not
backported.
This commit is contained in:
Olivier Houchard
2025-10-02 14:02:03 +02:00
committed by Olivier Houchard
parent d0084cb873
commit b01a00acb1

View File

@@ -1844,7 +1844,8 @@ int connect_server(struct stream *s)
if (err == SF_ERR_NONE) {
srv_conn = sc_conn(s->scb);
reuse = 1;
may_start_mux_now = 0;
if (srv_conn && srv_conn->mux)
may_start_mux_now = 0;
}
}