mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-22 22:56:29 +00:00
node rejoin: handle case where node to rejoin was primary
In that case the minRecoveryPoint* fields may be empty.
This commit is contained in:
@@ -2273,9 +2273,21 @@ do_node_rejoin(void)
|
||||
*/
|
||||
{
|
||||
bool can_follow;
|
||||
TimeLineID tli = get_min_recovery_end_timeline(config_file_options.data_directory);
|
||||
XLogRecPtr min_recovery_location = get_min_recovery_location(config_file_options.data_directory);
|
||||
|
||||
can_follow = check_node_can_attach(get_min_recovery_end_timeline(config_file_options.data_directory),
|
||||
get_min_recovery_location(config_file_options.data_directory),
|
||||
/*
|
||||
* It's possible this was a former primary, so the minRecoveryPoint*
|
||||
* fields may be empty.
|
||||
*/
|
||||
|
||||
if (min_recovery_location == InvalidXLogRecPtr)
|
||||
min_recovery_location = get_latest_checkpoint_location(config_file_options.data_directory);
|
||||
if (tli == 0)
|
||||
tli = get_timeline(config_file_options.data_directory);
|
||||
|
||||
can_follow = check_node_can_attach(tli,
|
||||
min_recovery_location,
|
||||
primary_conn,
|
||||
&primary_node_record,
|
||||
true);
|
||||
|
||||
Reference in New Issue
Block a user