From e6488c0e05bab5c4c2c0a6370930b0b27e5ed56e Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 7 Dec 2009 23:52:01 +1030 Subject: [PATCH] eventscript: don't make ourselves healthy if we're under ban_count If we've timed out, but we've not timed out more than ctdb->tunable.script_ban_count, we pretend we haven't. There's a logic bug in the way this is done: if we were unhealthy before, this would set us to "healthy" again (status == 0). I don't think this would happen in real life, but it's a little surprising. Signed-off-by: Rusty Russell --- server/ctdb_monitor.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/ctdb_monitor.c b/server/ctdb_monitor.c index c7bbb48a..0e5fbc2e 100644 --- a/server/ctdb_monitor.c +++ b/server/ctdb_monitor.c @@ -130,7 +130,7 @@ static void ctdb_health_callback(struct ctdb_context *ctdb, int status, void *p) DEBUG(DEBUG_ERR, ("Maximum timeout count %u reached for eventscript. Making node unhealthy\n", ctdb->tunable.script_ban_count)); } else { /* We pretend this is OK. */ - status = 0; + goto after_change_status; } } @@ -168,6 +168,7 @@ static void ctdb_health_callback(struct ctdb_context *ctdb, int status, void *p) } +after_change_status: next_interval = ctdb->monitor->next_interval; ctdb->monitor->next_interval *= 2; -- 2.34.1