MINOR: checks: I/O callback function only rely on the data layer wake callback

Most of code in event_srv_chk_io() function is inherited from the checks before
the recent refactoring. Now, it is enough to only call wake_srv_chk(). Since the
refactoring, the removed code is dead and never called. wake_srv_chk() may only
return 0 if tcpcheck_main() returns 0 and the check status is unknown
(CHK_RES_UNKNOWN). When this happens, nothing is performed in event_srv_chk_io().
This commit is contained in:
Christopher Faulet 2020-05-28 14:34:02 +02:00
parent 030ed4b738
commit 3d5e121842

View File

@ -3467,51 +3467,8 @@ static struct task *event_srv_chk_io(struct task *t, void *ctx, unsigned short s
{
struct check *check = ctx;
struct conn_stream *cs = check->cs;
struct email_alertq *q = container_of(check, typeof(*q), check);
int ret = 0;
if (!(check->wait_list.events & SUB_RETRY_SEND))
ret = wake_srv_chk(cs);
if (ret == 0 && !(check->wait_list.events & SUB_RETRY_RECV)) {
if (check->server)
HA_SPIN_LOCK(SERVER_LOCK, &check->server->lock);
else
HA_SPIN_LOCK(EMAIL_ALERTS_LOCK, &q->lock);
if (unlikely(check->result == CHK_RES_FAILED)) {
/* collect possible new errors */
if (cs->conn->flags & CO_FL_ERROR || cs->flags & CS_FL_ERROR)
chk_report_conn_err(check, 0, 0);
/* Reset the check buffer... */
b_reset(&check->bi);
/* Close the connection... We still attempt to nicely close if,
* for instance, SSL needs to send a "close notify." Later, we perform
* a hard close and reset the connection if some data are pending,
* otherwise we end up with many TIME_WAITs and eat all the source port
* range quickly. To avoid sending RSTs all the time, we first try to
* drain pending data.
*/
/* Call cs_shutr() first, to add the CO_FL_SOCK_RD_SH flag on the
* connection, to make sure cs_shutw() will not lead to a shutdown()
* that would provoke TIME_WAITs.
*/
cs_shutr(cs, CS_SHR_DRAIN);
cs_shutw(cs, CS_SHW_NORMAL);
/* OK, let's not stay here forever */
if (check->result == CHK_RES_FAILED)
cs->conn->flags |= CO_FL_ERROR;
task_wakeup(t, TASK_WOKEN_IO);
}
if (check->server)
HA_SPIN_UNLOCK(SERVER_LOCK, &check->server->lock);
else
HA_SPIN_UNLOCK(EMAIL_ALERTS_LOCK, &q->lock);
}
wake_srv_chk(cs);
return NULL;
}