From 043a6c5bea15f98de384e075ed0fac7fe5a78845 Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Thu, 31 May 2018 17:47:51 +0900 Subject: [PATCH] repmgrd: ensue degraded monitoring timeout works on standby Parameter "degraded_monitoring_timeout" was not being acted on when monitoring a streaming replication standby. Addresses GitHub #439. --- repmgrd-physical.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/repmgrd-physical.c b/repmgrd-physical.c index b4424d91..14ce2f5c 100644 --- a/repmgrd-physical.c +++ b/repmgrd-physical.c @@ -816,6 +816,29 @@ monitor_streaming_standby(void) { int degraded_monitoring_elapsed = calculate_elapsed(degraded_monitoring_start); + if (config_file_options.degraded_monitoring_timeout > 0 + && degraded_monitoring_elapsed > config_file_options.degraded_monitoring_timeout) + { + initPQExpBuffer(&event_details); + + appendPQExpBuffer(&event_details, + _("degraded monitoring timeout (%i seconds) exceeded, terminating"), + degraded_monitoring_elapsed); + + log_notice("%s", event_details.data); + + create_event_notification(NULL, + &config_file_options, + config_file_options.node_id, + "repmgrd_shutdown", + true, + event_details.data); + + termPQExpBuffer(&event_details); + terminate(ERR_MONITORING_TIMEOUT); + } + + log_debug("monitoring node %i in degraded state for %i seconds", upstream_node_info.node_id, degraded_monitoring_elapsed);