From 3c45853b6f9bccb554c69ca0a61c72e7c94250b8 Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Wed, 5 Jul 2017 12:43:35 +0900 Subject: [PATCH] Fixes for cascaded standby failover --- repmgrd.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/repmgrd.c b/repmgrd.c index 73c609c6..0206b0c0 100644 --- a/repmgrd.c +++ b/repmgrd.c @@ -1125,6 +1125,9 @@ do_upstream_standby_failover(void) termPQExpBuffer(&event_details); } + /* reconnect to local node */ + local_conn = establish_db_connection(config_file_options.conninfo, false); + if (update_node_record_set_upstream(primary_conn, local_node_info.node_id, primary_node_info.node_id) == false) @@ -1147,13 +1150,8 @@ do_upstream_standby_failover(void) terminate(ERR_BAD_CONFIG); } - /* update own internal node record */ - record_status = get_node_record(primary_conn, local_node_info.node_id, &local_node_info); - - PQfinish(primary_conn); - primary_conn = NULL; - + record_status = get_node_record(primary_conn, local_node_info.node_id, &local_node_info); appendPQExpBuffer(&event_details, @@ -1172,7 +1170,10 @@ do_upstream_standby_failover(void) termPQExpBuffer(&event_details); - local_conn = establish_db_connection(config_file_options.conninfo, true); + + PQfinish(primary_conn); + primary_conn = NULL; + return true; }