BUG/MEDIUM: connection: Don't use the provided conn_stream if it was tried.

In connect_server(), don't attempt to reuse the conn_stream associated to
the stream_interface, if we already attempted a connection with it.
Using that conn_stream is only there for the cases where a connection and
a conn_stream was created ahead, mostly by http_proxy or by the LUA code.
If we already attempted to connect, that means we fail, and so we should
create a new connection.

No backport needed.
This commit is contained in:
Olivier Houchard 2018-12-08 16:38:34 +01:00 committed by Willy Tarreau
parent 72e9227385
commit eb2bbba547

View File

@ -1130,7 +1130,8 @@ int connect_server(struct stream *s)
srv_cs = objt_cs(s->si[1].end);
if (srv_cs) {
old_conn = srv_conn = cs_conn(srv_cs);
if (old_conn)
if (old_conn &&
!(old_conn->flags & (CO_FL_ERROR | CO_FL_WAIT_L4_CONN)))
reuse = 1;
} else {
for (i = 0; i < MAX_SRV_LIST; i++) {