diff --git a/sdcm/nemesis.py b/sdcm/nemesis.py index 4ef6a5f1c62..75833489c53 100644 --- a/sdcm/nemesis.py +++ b/sdcm/nemesis.py @@ -3976,8 +3976,14 @@ def start_and_interrupt_repair_streaming(self): self.target_node.wait_node_fully_start() - with adaptive_timeout(Operations.REBUILD, self.target_node, timeout=HOUR_IN_SEC * 48): - self.target_node.run_nodetool("rebuild", long_running=True, retry=0) + is_rebuild_supported = SkipPerIssues('scylladb/scylladb#17575', params=self.tester.params) + # If tablets in use and rebuild is not supported, running a repair instead. + with self.cluster.cql_connection_patient(self.target_node) as session: + if is_tablets_feature_enabled(session=session) and not is_rebuild_supported: + self.target_node.run_nodetool(sub_cmd="repair") + else: + with adaptive_timeout(Operations.REBUILD, self.target_node, timeout=HOUR_IN_SEC * 48): + self.target_node.run_nodetool("rebuild", long_running=True, retry=0) def start_and_interrupt_rebuild_streaming(self): """ @@ -4007,8 +4013,14 @@ def start_and_interrupt_rebuild_streaming(self): ) ParallelObject(objects=[trigger, watcher], timeout=timeout + 60).call_objects() self.target_node.wait_node_fully_start(timeout=300) - with adaptive_timeout(Operations.REBUILD, self.target_node, timeout=HOUR_IN_SEC * 48): - self.target_node.run_nodetool("rebuild", long_running=True, retry=0) + is_rebuild_supported = SkipPerIssues('scylladb/scylladb#17575', params=self.tester.params) + # If tablets in use and rebuild is not supported, running a repair instead. + with self.cluster.cql_connection_patient(self.target_node) as session: + if is_tablets_feature_enabled(session=session) and not is_rebuild_supported: + self.target_node.run_nodetool(sub_cmd="repair") + else: + with adaptive_timeout(Operations.REBUILD, self.target_node, timeout=HOUR_IN_SEC * 48): + self.target_node.run_nodetool("rebuild", long_running=True, retry=0) def disrupt_decommission_streaming_err(self): """