From: Willy Tarreau Date: Fri, 22 Oct 2010 12:39:02 +0000 (+0200) Subject: [MEDIUM] checks: set server state to one state from failure when leaving maintenance X-Git-Tag: v1.5-dev8~436 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=70461308fecf9122f3a7dd32534b842c603d8517;p=thirdparty%2Fhaproxy.git [MEDIUM] checks: set server state to one state from failure when leaving maintenance When we're enabling a server again (unix CLI or stats interface), we must not mark it completely up because it can take a while before a failure is detected. So we mark it one step above failure, which means it's up but will be marked down upon first failure. (cherry picked from commit 83c3e06452457ed5660fc814cbda5bf878bf19a2) --- diff --git a/src/dumpstats.c b/src/dumpstats.c index f0d6c83f5d..f7f3276715 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -755,12 +755,14 @@ int stats_sock_parse_request(struct stream_interface *si, char *line) */ if (sv->tracked->state & SRV_RUNNING) { set_server_up(sv); + sv->health = sv->rise; /* up, but will fall down at first failure */ } else { sv->state &= ~SRV_MAINTAIN; set_server_down(sv); } } else { set_server_up(sv); + sv->health = sv->rise; /* up, but will fall down at first failure */ } } diff --git a/src/proto_http.c b/src/proto_http.c index 0cbfef2661..3003e5d09f 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -2931,6 +2931,7 @@ int http_process_req_stat_post(struct session *s, struct buffer *req) if ((sv->state & SRV_MAINTAIN)) { /* Already in maintenance, we can change the server state */ set_server_up(sv); + sv->health = sv->rise; /* up, but will fall down at first failure */ s->data_ctx.stats.st_code = STAT_STATUS_DONE; } break;