From fe4abe62c7c5206dff1802f42d17014e198b9141 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Fri, 14 Jun 2019 15:26:06 +0200 Subject: [PATCH] BUG/MEDIUM: connections: Don't call shutdown() if we want to disable linger. In conn_sock_shutw(), avoid calling shutdown() if linger_risk is set. Not doing so will result in getting sockets in TIME_WAIT for some time. This is particularly observable with health checks. This should be backported to 1.9. --- include/proto/connection.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/proto/connection.h b/include/proto/connection.h index 115e7aaa3b..1e5fc9c9e6 100644 --- a/include/proto/connection.h +++ b/include/proto/connection.h @@ -352,7 +352,8 @@ static inline void conn_sock_shutw(struct connection *c, int clean) /* don't perform a clean shutdown if we're going to reset or * if the shutr was already received. */ - if (conn_ctrl_ready(c) && !(c->flags & CO_FL_SOCK_RD_SH) && clean) + if (conn_ctrl_ready(c) && !(c->flags & CO_FL_SOCK_RD_SH) && clean && + !fdtab[c->handle.fd].linger_risk) shutdown(c->handle.fd, SHUT_WR); } -- 2.39.5