Hi, When checks were modified to dynamically allocate a connection, in case connect_conn_chk() fails, the connection was never free'd, which made the check unable to run again.
The attached patch addresses this. Regards, Olivier
>From 5267b95d7f196d1893d73035abe850226601284c Mon Sep 17 00:00:00 2001 From: Olivier Houchard <[email protected]> Date: Tue, 24 Oct 2017 19:03:30 +0200 Subject: [PATCH 2/2] BUG/MINOR: checks: Don't forget to release the connection on error case. When switching the check code to a non-permanent connection, the new code forgot to free the connection if an error happened and was returned by connect_conn_chk(), leading to the check never be ran again. --- src/checks.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/checks.c b/src/checks.c index e6cc42a1c..880b47bc1 100644 --- a/src/checks.c +++ b/src/checks.c @@ -2118,6 +2118,10 @@ static struct task *process_chk_conn(struct task *t) } /* here, we have seen a synchronous error, no fd was allocated */ + if (conn) { + conn_free(conn); + check->conn = conn = NULL; + } check->state &= ~CHK_ST_INPROGRESS; check_notify_failure(check); -- 2.13.5

