From a70e176843c64641598b68c6fe24311d4aeb92ca Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Thu, 13 Dec 2018 18:01:00 +0100 Subject: [PATCH] BUG/MEDIUM: connections: Don't attempt to reuse an unusable connection. Before trying to add a connection to the idle list, make sure it doesn't have the error, the shutr or the shutw flag. If any of them is present, don't bother trying to recycle the connection, it's going to be destroyed anyway. --- src/proto_http.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/proto_http.c b/src/proto_http.c index a89ce1dc0..2b9c0f51e 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -3484,7 +3484,8 @@ void http_end_txn_clean_session(struct stream *s) * We then can call si_release_endpoint() to destroy the conn_stream */ if (((s->txn->flags & TX_CON_WANT_MSK) != TX_CON_WANT_KAL) || - !si_conn_ready(&s->si[1])) + !si_conn_ready(&s->si[1]) || + (srv_conn && srv_conn->flags & (CO_FL_ERROR | CO_FL_SOCK_RD_SH | CO_FL_SOCK_WR_SH))) srv_conn = NULL; else if (!srv_conn->owner) { srv_conn->owner = s->sess;