From 7c9d0e1b20ec5e70089be1d526a75f7092b54a6e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 21 Feb 2020 10:13:03 +0100 Subject: [PATCH] MINOR: checks: do not call conn_xprt_stop_send() anymore While trying to address issue #253, Commit 5909380c ("BUG/MINOR: checks: stop polling for write when we have nothing left to send") made sure that we stop polling for writes when the buffer is empty. This was actually more a workaround than a bug fix because by doing so we may be stopping polling for an intermediary transport layer without acting on the check itself in case there's SSL or send-proxy in the chain for example, thus the approach is wrong. In practice due to the small size of check requests, this will not have any impact. At best, we ought to unsubscribe for sending, but that's already the case when we arrive in this function. But given that the root cause of the issue was addressed later in commits cc705a6b, c5940392 and ccf3f6d1, we can now safely revert this change. It was confirmed on the faulty config that this change doesn't have any effect anymore on the test. --- src/checks.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/checks.c b/src/checks.c index 3a74996cf..1c71ea618 100644 --- a/src/checks.c +++ b/src/checks.c @@ -788,9 +788,6 @@ static void __event_srv_chk_w(struct conn_stream *cs) } } - if (!b_data(&check->bo)) - conn_xprt_stop_send(conn); - /* full request sent, we allow up to if nonzero for a response */ if (s->proxy->timeout.check) { t->expire = tick_add_ifset(now_ms, s->proxy->timeout.check);