Skip to content

Commit e0024da

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) (cherry picked from commit bf19a8d) (cherry picked from commit 2ce0618) (cherry picked from commit 113022a) (cherry picked from commit 4e9590c)
1 parent 900d2f8 commit e0024da

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
@@ -1226,6 +1226,40 @@ def run_repair():
12261226
else:
12271227
node1.nodetool('repair keyspace1 standard1 -inc -par')
12281228

1229+
@since('3.0')
1230+
def test_repair_one_node_cluster(self):
1231+
options = []
1232+
fix_STAR582 = self.cluster.version() >= "4.0"
1233+
if not fix_STAR582:
1234+
options = ['--ignore-unreplicated-keyspaces'] + options
1235+
self._repair_abort_test(options=options, nodes=1, rf=2)
1236+
1237+
@since('3.0')
1238+
def test_repair_one_node_in_local_dc(self):
1239+
self._repair_abort_test(options=['--ignore-unreplicated-keyspaces', '--in-local-dc'], nodes=[1, 1], rf={'dc1': 1, 'dc2': 1}, no_common_range=True)
1240+
1241+
def _repair_abort_test(self, options=[], nodes=1, rf=1, no_common_range=False):
1242+
cluster = self.cluster
1243+
logger.debug("Starting cluster..")
1244+
cluster.populate(nodes).start(wait_for_binary_proto=True)
1245+
1246+
node1 = self.cluster.nodelist()[0]
1247+
session = self.patient_cql_connection(node1)
1248+
create_ks(session, 'ks', rf=rf)
1249+
1250+
support_preview = self.cluster.version() >= "4.0"
1251+
if support_preview:
1252+
logger.debug("Preview repair")
1253+
out = node1.repair(["--preview"] + options)
1254+
if no_common_range:
1255+
assert "Nothing to repair for " in str(out), "Expect 'Nothing to repair for '"
1256+
1257+
logger.debug("Full repair")
1258+
node1.repair(["--full"] + options)
1259+
1260+
logger.debug("Incremental repair")
1261+
node1.repair(options)
1262+
12291263
@since('2.2')
12301264
def test_dead_sync_initiator(self):
12311265
"""

0 commit comments

Comments
 (0)