From 70461308fecf9122f3a7dd32534b842c603d8517 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 22 Oct 2010 14:39:02 +0200 Subject: [PATCH] [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) --- src/dumpstats.c | 2 ++ src/proto_http.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/dumpstats.c b/src/dumpstats.c index f0d6c83f5..f7f327671 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 0cbfef266..3003e5d09 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;