From fb8a8f1c7e4a4c658aed32566bee511d33fe88dc Mon Sep 17 00:00:00 2001 From: Kim Altintop Date: Fri, 11 Jul 2025 09:05:06 +0200 Subject: [PATCH] smoketest: Retry if there is no current leader In the `wait_for_leader_change` helper, catch the case where `get_leader_info` doesn't return any rows, and retry. It is possible that no leader information exists when the node hosting the last leader is disconnected from the control db. --- smoketests/tests/replication.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/smoketests/tests/replication.py b/smoketests/tests/replication.py index d5de98fe39b..65bf2f462b1 100644 --- a/smoketests/tests/replication.py +++ b/smoketests/tests/replication.py @@ -102,10 +102,15 @@ def get_leader_info(self): def wait_for_leader_change(self, previous_leader_node, max_attempts=10, delay=2): """Wait for leader to change and return new leader node_id.""" + for _ in range(max_attempts): - current_leader = self.get_leader_info()['node_id'] - if current_leader != previous_leader_node: - return current_leader + try: + current_leader_node = self.get_leader_info()['node_id'] + if current_leader_node != previous_leader_node: + return current_leader_node + except Exception: + print("No current leader") + time.sleep(delay) return None