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.
This commit is contained in:
Willy Tarreau 2019-09-05 18:24:46 +02:00
parent 616c1cf774
commit 5909380c05

View File

@ -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 <timeout.check> if nonzero for a response */
if (s->proxy->timeout.check) {
t->expire = tick_add_ifset(now_ms, s->proxy->timeout.check);