From 8dfb7bbc7d029bcce3dd086dd476410df5b56928 Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Wed, 23 Aug 2017 21:44:18 +0900 Subject: [PATCH] repmgrd: handle promotion failure properly --- repmgrd-physical.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/repmgrd-physical.c b/repmgrd-physical.c index 467f69d4..484dc378 100644 --- a/repmgrd-physical.c +++ b/repmgrd-physical.c @@ -992,6 +992,9 @@ do_primary_failover(void) return true; case FAILOVER_STATE_PROMOTION_FAILED: + monitoring_state = MS_DEGRADED; + INSTR_TIME_SET_CURRENT(degraded_monitoring_start); + log_debug("failover state is PROMOTION FAILED"); return false; @@ -1269,9 +1272,19 @@ promote_self(void) return FAILOVER_STATE_PRIMARY_REAPPEARED; } - // handle this - // -> check if somehow primary; otherwise go for new election? + log_error(_("promote command failed")); + initPQExpBuffer(&event_details); + + create_event_notification( + NULL, + &config_file_options, + local_node_info.node_id, + "repmgrd_promote_error", + true, + event_details.data); + termPQExpBuffer(&event_details); + return FAILOVER_STATE_PROMOTION_FAILED; }