mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-22 05:36:56 +00:00
BUG/MEDIUM: servers: Only set SF_SRV_REUSED if the connection if fully ready.
In connect_server(), if we're reusing a connection, only use SF_SRV_REUSED if the connection is fully ready. We may be using a multiplexed connection created by another stream that is not yet ready, and may fail. If we set SF_SRV_REUSED, process_stream() will then not wait for the timeout to expire, and retry to connect immediately. This should be backported to 1.9 and 2.0. This commit depends on 55234e33708c5a584fb9efea81d71ac47235d518.
This commit is contained in:
parent
6e8e2ec849
commit
e8f5f5d8b2
@ -1482,8 +1482,13 @@ int connect_server(struct stream *s)
|
||||
if (srv_conn->mux->reset)
|
||||
srv_conn->mux->reset(srv_conn);
|
||||
}
|
||||
else
|
||||
s->flags |= SF_SRV_REUSED;
|
||||
else {
|
||||
/* Only consider we're doing reuse if the connection was
|
||||
* ready.
|
||||
*/
|
||||
if (srv_conn->mux->ctl(srv_conn, MUX_STATUS, NULL) & MUX_STATUS_READY)
|
||||
s->flags |= SF_SRV_REUSED;
|
||||
}
|
||||
|
||||
/* flag for logging source ip/port */
|
||||
if (strm_fe(s)->options2 & PR_O2_SRC_ADDR)
|
||||
|
Loading…
Reference in New Issue
Block a user