diff --git a/HISTORY b/HISTORY index 4003a234..e25b6d98 100644 --- a/HISTORY +++ b/HISTORY @@ -4,6 +4,8 @@ repmgr: poll demoted primary after restart as a standby during a switchover operation; GitHub #408 (Ian) repmgrd: fix memory leaks in witness code (AndrzejNowicki, Martín) + repmgrd: handle failover situation with only two nodes in the primary + location, and at least one node in another location; GitHub #407 (Ian) 4.0.4 2018-03-09 repmgr: add "standby clone --recovery-conf-only" option; GitHub #382 (Ian) diff --git a/repmgrd-physical.c b/repmgrd-physical.c index fea2c29c..c3d7656f 100644 --- a/repmgrd-physical.c +++ b/repmgrd-physical.c @@ -2569,6 +2569,14 @@ do_election(void) return ELECTION_NOT_CANDIDATE; } } + else + { + /* standby nodes found - check if we're in the primary location befor checking theirs */ + if (strncmp(upstream_node_info.location, local_node_info.location, MAXLEN) == 0) + { + primary_location_seen = true; + } + } /* get our lsn */ local_node_info.last_wal_receive_lsn = get_last_wal_receive_location(local_conn);