From: Olivier Houchard Date: Thu, 13 Dec 2018 17:01:00 +0000 (+0100) Subject: BUG/MEDIUM: connections: Don't attempt to reuse an unusable connection. X-Git-Tag: v1.9-dev11~62 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a70e176843c64641598b68c6fe24311d4aeb92ca;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/proto_http.c b/src/proto_http.c index a89ce1dc06..2b9c0f51e6 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;