Skip to content

Commit a8be273

Browse files
k-rusjasonstack
authored andcommitted
STAR-582 fix repair error on one node cluster (#20)
Port of DB-1511, riptano/apollo-dtest#197 Co-authored-by: Zhao Yang <[email protected]> (cherry picked from commit c7beefc) (cherry picked from commit a02abc6) (cherry picked from commit 387d688) (cherry picked from commit d219834)
1 parent 1f0a47c commit a8be273

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

repair_tests/repair_test.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,6 +1195,40 @@ def run_repair():
11951195
else:
11961196
node1.nodetool('repair keyspace1 standard1 -inc -par')
11971197

1198+
@since('3.0')
1199+
def test_repair_one_node_cluster(self):
1200+
options = []
1201+
fix_STAR582 = self.cluster.version() >= "4.0"
1202+
if not fix_STAR582:
1203+
options = ['--ignore-unreplicated-keyspaces'] + options
1204+
self._repair_abort_test(options=options, nodes=1, rf=2)
1205+
1206+
@since('3.0')
1207+
def test_repair_one_node_in_local_dc(self):
1208+
self._repair_abort_test(options=['--ignore-unreplicated-keyspaces', '--in-local-dc'], nodes=[1, 1], rf={'dc1': 1, 'dc2': 1}, no_common_range=True)
1209+
1210+
def _repair_abort_test(self, options=[], nodes=1, rf=1, no_common_range=False):
1211+
cluster = self.cluster
1212+
logger.debug("Starting cluster..")
1213+
cluster.populate(nodes).start(wait_for_binary_proto=True)
1214+
1215+
node1 = self.cluster.nodelist()[0]
1216+
session = self.patient_cql_connection(node1)
1217+
create_ks(session, 'ks', rf=rf)
1218+
1219+
support_preview = self.cluster.version() >= "4.0"
1220+
if support_preview:
1221+
logger.debug("Preview repair")
1222+
out = node1.repair(["--preview"] + options)
1223+
if no_common_range:
1224+
assert "Nothing to repair for " in str(out), "Expect 'Nothing to repair for '"
1225+
1226+
logger.debug("Full repair")
1227+
node1.repair(["--full"] + options)
1228+
1229+
logger.debug("Incremental repair")
1230+
node1.repair(options)
1231+
11981232
@since('2.2')
11991233
def test_dead_sync_initiator(self):
12001234
"""

0 commit comments

Comments
 (0)