mirror of
https://github.com/outbackdingo/patroni.git
synced 2026-08-25 14:53:37 +00:00
Fix infinite recursion in in replicatefrom tags (#3072)
Besides that: 1. fix problem with is_physical_slot() methods, it was returning false positives for logical slots. 2. Fix a little issue with replicatefrom docs. Close https://github.com/zalando/patroni/issues/3068
This commit is contained in:
@@ -186,6 +186,32 @@ class TestSlotsHandler(BaseTestPostgresql):
|
||||
cluster.get_slot_name_on_primary(self.p.name, stream_node),
|
||||
'test_4')
|
||||
|
||||
def test_get_slot_name_on_primary(self):
|
||||
node1 = Member(0, 'node1', 28, {
|
||||
'state': 'running', 'conn_url': 'postgres://replicator:[email protected]:5436/postgres',
|
||||
'tags': {'replicatefrom': 'node2'}
|
||||
})
|
||||
node2 = Member(0, 'node2', 28, {
|
||||
'state': 'running', 'conn_url': 'postgres://replicator:[email protected]:5436/postgres',
|
||||
'tags': {'replicatefrom': 'node1'}
|
||||
})
|
||||
cluster = Cluster(True, None, self.leader, Status.empty(), [self.leadermem, node1, node2],
|
||||
None, SyncState.empty(), None, None)
|
||||
self.assertIsNone(cluster.get_slot_name_on_primary('node1', node1))
|
||||
|
||||
def test_should_enforce_hot_standby_feedback(self):
|
||||
node1 = Member(0, 'postgresql0', 28, {
|
||||
'state': 'running', 'conn_url': 'postgres://replicator:[email protected]:5436/postgres',
|
||||
'tags': {'replicatefrom': 'postgresql1'}
|
||||
})
|
||||
node2 = Member(0, 'postgresql1', 28, {
|
||||
'state': 'running', 'conn_url': 'postgres://replicator:[email protected]:5436/postgres',
|
||||
'tags': {'replicatefrom': 'postgresql0'}
|
||||
})
|
||||
cluster = Cluster(True, None, self.leader, Status.empty(), [self.leadermem, node1, node2],
|
||||
None, SyncState.empty(), None, None)
|
||||
self.assertFalse(cluster.should_enforce_hot_standby_feedback(self.p, node1))
|
||||
|
||||
@patch.object(Postgresql, 'is_primary', Mock(return_value=False))
|
||||
def test__ensure_logical_slots_replica(self):
|
||||
self.p.set_role('replica')
|
||||
|
||||
Reference in New Issue
Block a user