BUG/MINOR: checks: successful check completion must not re-enable MAINT servers

If a server is switched to maintenance mode while a check is in progress,
the successful completion of the check must not switch it back up. This
is still a consequence of using the same function set_server_up() for
every state change. Bug reported by Igor at owind.

This fix should be backported to 1.4 which is affected as well.
This commit is contained in:
Willy Tarreau 2013-12-23 14:04:17 +01:00
parent 3ef5af3dcc
commit 9f708ab707

View File

@ -1682,7 +1682,8 @@ static struct task *process_chk(struct task *t)
set_server_disabled(check);
}
if (check->health < check->rise + check->fall - 1) {
if (!(s->state & SRV_MAINTAIN) &&
check->health < check->rise + check->fall - 1) {
check->health++; /* was bad, stays for a while */
set_server_up(check);
}