BUG/MINOR: checks: expire on timeout.check if smaller than timeout.connect
It happens that haproxy doesn't displace the task in the wait queue when validating a connection, so if the check timeout is set to a smaller value than timeout.connect, it will not strike before timeout.connect. The bug is present at least in 1.4.15..1.4.21, so the fix must be backported.
This commit is contained in:
parent
8dc4184c57
commit
1e44a49c89
@ -793,8 +793,10 @@ static int event_srv_chk_w(int fd)
|
||||
ret = send(fd, check_req, check_len, MSG_DONTWAIT | MSG_NOSIGNAL);
|
||||
if (ret == check_len) {
|
||||
/* we allow up to <timeout.check> if nonzero for a responce */
|
||||
if (s->proxy->timeout.check)
|
||||
if (s->proxy->timeout.check) {
|
||||
t->expire = tick_add_ifset(now_ms, s->proxy->timeout.check);
|
||||
task_queue(t);
|
||||
}
|
||||
EV_FD_SET(fd, DIR_RD); /* prepare for reading reply */
|
||||
goto out_nowake;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user