BUG/MEDIUM: Do not set agent health to zero if server is disabled in config

disable starts a server in the disabled state, however setting the health
of an agent implies that the agent is disabled as well as the server.

This is a problem because the state of the agent is not restored if
the state of the server is subsequently updated leading to an
unexpected state.

For example, if a server is started disabled and then the server
state is set to ready then without this change show stat indicates
that the server is "DOWN (agent)" when it is expected that the server
would be UP if its (non-agent) health check passes.

Reported-by: Mark Brooks <mark@loadbalancer.org>
Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
Simon Horman 2014-11-12 15:55:53 +09:00 committed by Willy Tarreau
parent 7eda849dce
commit 1a23cf0dfb
2 changed files with 0 additions and 2 deletions

View File

@ -7071,7 +7071,6 @@ out_uri_auth_compat:
newsrv->admin |= SRV_ADMF_IMAINT;
newsrv->state = SRV_ST_STOPPED;
newsrv->check.health = 0;
newsrv->agent.health = 0;
}
newsrv->track = srv;

View File

@ -1224,7 +1224,6 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr
newsrv->state = SRV_ST_STOPPED;
newsrv->check.state |= CHK_ST_PAUSED;
newsrv->check.health = 0;
newsrv->agent.health = 0;
cur_arg += 1;
}
else if (!defsrv && !strcmp(args[cur_arg], "observe")) {