From: Willy Tarreau Date: Thu, 5 Sep 2019 16:24:46 +0000 (+0200) Subject: BUG/MINOR: checks: stop polling for write when we have nothing left to send X-Git-Tag: v2.1-dev2~108 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5909380c;p=thirdparty%2Fhaproxy.git BUG/MINOR: checks: stop polling for write when we have nothing left to send Since the change of I/O direction, we perform the connect() call and the send() call together from the top. But the send call must at least disable polling for writes once it does not have anything left to send. This bug is partially responsible for the waste of resources described in issue #253. This must be backported to 2.0. --- diff --git a/src/checks.c b/src/checks.c index ff39b4f643..4a60c414d0 100644 --- a/src/checks.c +++ b/src/checks.c @@ -791,6 +791,9 @@ 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);