mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-01 14:38:28 +00:00
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);
|
ret = send(fd, check_req, check_len, MSG_DONTWAIT | MSG_NOSIGNAL);
|
||||||
if (ret == check_len) {
|
if (ret == check_len) {
|
||||||
/* we allow up to <timeout.check> if nonzero for a responce */
|
/* 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);
|
t->expire = tick_add_ifset(now_ms, s->proxy->timeout.check);
|
||||||
|
task_queue(t);
|
||||||
|
}
|
||||||
EV_FD_SET(fd, DIR_RD); /* prepare for reading reply */
|
EV_FD_SET(fd, DIR_RD); /* prepare for reading reply */
|
||||||
goto out_nowake;
|
goto out_nowake;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user