diff --git a/patroni/ha.py b/patroni/ha.py index 2080e1ed..5f3a00cc 100644 --- a/patroni/ha.py +++ b/patroni/ha.py @@ -434,7 +434,8 @@ class Ha(object): else: # Either there is no connection to DCS or someone else acquired the lock logger.error('failed to update leader lock') - self.load_cluster_from_dcs() + self.demote(delete_leader=False) + return 'demoted self because failed to update leader lock in DCS' else: logger.info('does not have lock') return self.follow('demoting self because i do not have the lock and i was a leader', diff --git a/tests/test_ha.py b/tests/test_ha.py index 61d65718..f62a6f16 100644 --- a/tests/test_ha.py +++ b/tests/test_ha.py @@ -231,7 +231,7 @@ class TestHa(unittest.TestCase): self.ha.cluster.is_unlocked = false self.ha.has_lock = true self.ha.update_lock = false - self.assertEquals(self.ha.run_cycle(), 'demoting self because i do not have the lock and i was a leader') + self.assertEquals(self.ha.run_cycle(), 'demoted self because failed to update leader lock in DCS') def test_follow(self): self.ha.cluster.is_unlocked = false