mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-25 08:06:29 +00:00
"standby clone": fix replication slot generation
Slot on source node was being deleted even if source node is the intended upstream node.
This commit is contained in:
@@ -3889,6 +3889,7 @@ run_basebackup(t_node_info *node_record)
|
|||||||
t_node_info upstream_node_record = T_NODE_INFO_INITIALIZER;
|
t_node_info upstream_node_record = T_NODE_INFO_INITIALIZER;
|
||||||
t_replication_slot slot_info = T_REPLICATION_SLOT_INITIALIZER;
|
t_replication_slot slot_info = T_REPLICATION_SLOT_INITIALIZER;
|
||||||
RecordStatus record_status = RECORD_NOT_FOUND;
|
RecordStatus record_status = RECORD_NOT_FOUND;
|
||||||
|
bool slot_exists_on_upstream = false;
|
||||||
|
|
||||||
record_status = get_node_record(source_conn, upstream_node_id, &upstream_node_record);
|
record_status = get_node_record(source_conn, upstream_node_id, &upstream_node_record);
|
||||||
|
|
||||||
@@ -3918,13 +3919,12 @@ run_basebackup(t_node_info *node_record)
|
|||||||
_("replication slot \"%s\" aleady exists on upstream node %i"),
|
_("replication slot \"%s\" aleady exists on upstream node %i"),
|
||||||
node_record->slot_name,
|
node_record->slot_name,
|
||||||
upstream_node_id);
|
upstream_node_id);
|
||||||
|
slot_exists_on_upstream = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
PQExpBufferData event_details;
|
PQExpBufferData event_details;
|
||||||
|
|
||||||
|
|
||||||
log_notice(_("creating replication slot \"%s\" on upstream node %i"),
|
log_notice(_("creating replication slot \"%s\" on upstream node %i"),
|
||||||
node_record->slot_name,
|
node_record->slot_name,
|
||||||
upstream_node_id);
|
upstream_node_id);
|
||||||
@@ -3965,13 +3965,16 @@ run_basebackup(t_node_info *node_record)
|
|||||||
|
|
||||||
if (slot_info.active == false)
|
if (slot_info.active == false)
|
||||||
{
|
{
|
||||||
if (drop_replication_slot(source_conn, node_record->slot_name) == true)
|
if (slot_exists_on_upstream == false)
|
||||||
{
|
{
|
||||||
log_notice(_("replication slot \"%s\" deleted on source node"), node_record->slot_name);
|
if (drop_replication_slot(source_conn, node_record->slot_name) == true)
|
||||||
}
|
{
|
||||||
else
|
log_notice(_("replication slot \"%s\" deleted on source node"), node_record->slot_name);
|
||||||
{
|
}
|
||||||
log_error(_("unable to delete replication slot \"%s\" on source node"), node_record->slot_name);
|
else
|
||||||
|
{
|
||||||
|
log_error(_("unable to delete replication slot \"%s\" on source node"), node_record->slot_name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user