This is an automated email from the ASF dual-hosted git repository.
smiklosovic pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/trunk by this push:
new 3acec3c28e Make nodetool reconfigurecms sync by default and add
--cancel to be able to cancel ongoing reconfigurations
3acec3c28e is described below
commit 3acec3c28e56239147d9fb4bd821a49f4b86a77a
Author: Marcus Eriksson <[email protected]>
AuthorDate: Thu Dec 21 12:22:59 2023 +0100
Make nodetool reconfigurecms sync by default and add --cancel to be able to
cancel ongoing reconfigurations
patch by Marcus Eriksson; reviewed by Stefan Miklosovic, Sam Tunnicliffe
for CASSANDRA-19216
Co-authored-by: Sam Tunnicliffe <[email protected]>
---
CHANGES.txt | 1 +
.../org/apache/cassandra/tcm/CMSOperations.java | 50 +++++++++----------
.../apache/cassandra/tcm/CMSOperationsMBean.java | 5 +-
.../cassandra/tcm/ownership/DataPlacements.java | 6 +++
.../tcm/sequences/CancelCMSReconfiguration.java | 56 ++++++++++++++++++----
.../cassandra/tcm/sequences/ReconfigureCMS.java | 16 +++++++
.../cassandra/tools/nodetool/ReconfigureCMS.java | 18 ++++---
.../distributed/test/log/ReconfigureCMSTest.java | 25 +++++-----
.../test/log/TriggeredReconfigureCMSTest.java | 6 +--
.../upgrade/ClusterMetadataUpgradeHarryTest.java | 2 +-
.../upgrade/ClusterMetadataUpgradeTest.java | 2 +-
11 files changed, 129 insertions(+), 58 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index f36529a350..d73539808e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
5.1
+ * Make nodetool reconfigurecms sync by default and add --cancel to be able to
cancel ongoing reconfigurations (CASSANDRA-19216)
* Expose auth mode in system_views.clients, nodetool clientstats, metrics
(CASSANDRA-19366)
* Remove sealed_periods and last_sealed_period tables (CASSANDRA-19189)
* Improve setup and initialisation of LocalLog/LogSpec (CASSANDRA-19271)
diff --git a/src/java/org/apache/cassandra/tcm/CMSOperations.java
b/src/java/org/apache/cassandra/tcm/CMSOperations.java
index 6aaccf7f83..8eacd53873 100644
--- a/src/java/org/apache/cassandra/tcm/CMSOperations.java
+++ b/src/java/org/apache/cassandra/tcm/CMSOperations.java
@@ -29,10 +29,10 @@ import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.cassandra.concurrent.ScheduledExecutors;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.schema.ReplicationParams;
import org.apache.cassandra.tcm.membership.NodeVersion;
+import org.apache.cassandra.tcm.sequences.CancelCMSReconfiguration;
import org.apache.cassandra.tcm.sequences.InProgressSequences;
import org.apache.cassandra.tcm.sequences.ReconfigureCMS;
import org.apache.cassandra.tcm.serialization.Version;
@@ -73,23 +73,21 @@ public class CMSOperations implements CMSOperationsMBean
@Override
- public void reconfigureCMS(int rf, boolean sync)
+ public void reconfigureCMS(int rf)
{
- Runnable r = () -> cms.reconfigureCMS(ReplicationParams.simpleMeta(rf,
ClusterMetadata.current().directory.knownDatacenters()));
- if (sync)
- r.run();
- else
- ScheduledExecutors.nonPeriodicTasks.submit(r);
+ cms.reconfigureCMS(ReplicationParams.simpleMeta(rf,
ClusterMetadata.current().directory.knownDatacenters()));
}
@Override
- public void reconfigureCMS(Map<String, Integer> rf, boolean sync)
+ public void reconfigureCMS(Map<String, Integer> rf)
{
- Runnable r = () ->
ClusterMetadataService.instance().reconfigureCMS(ReplicationParams.ntsMeta(rf));
- if (sync)
- r.run();
- else
- ScheduledExecutors.nonPeriodicTasks.submit(r);
+ cms.reconfigureCMS(ReplicationParams.ntsMeta(rf));
+ }
+
+ @Override
+ public void cancelReconfigureCms()
+ {
+ cms.commit(CancelCMSReconfiguration.instance);
}
@Override
@@ -117,6 +115,9 @@ public class CMSOperations implements CMSOperationsMBean
.map(Object::toString)
.collect(Collectors.toList()));
+ if (advance.diff.removals.isEmpty() &&
advance.diff.additions.isEmpty())
+ status.put("INCOMPLETE", Collections.singletonList("All operations
have finished but metadata keyspace ranges are still locked"));
+
return status;
}
@@ -125,15 +126,14 @@ public class CMSOperations implements CMSOperationsMBean
{
Map<String, String> info = new HashMap<>();
ClusterMetadata metadata = ClusterMetadata.current();
- ClusterMetadataService service = ClusterMetadataService.instance();
String members =
metadata.fullCMSMembers().stream().sorted().map(Object::toString).collect(Collectors.joining(","));
info.put("MEMBERS", members);
- info.put("IS_MEMBER",
Boolean.toString(service.isCurrentMember(FBUtilities.getBroadcastAddressAndPort())));
+ info.put("IS_MEMBER",
Boolean.toString(cms.isCurrentMember(FBUtilities.getBroadcastAddressAndPort())));
info.put("SERVICE_STATE",
ClusterMetadataService.state(metadata).toString());
- info.put("IS_MIGRATING", Boolean.toString(service.isMigrating()));
+ info.put("IS_MIGRATING", Boolean.toString(cms.isMigrating()));
info.put("EPOCH", Long.toString(metadata.epoch.getEpoch()));
- info.put("LOCAL_PENDING",
Integer.toString(ClusterMetadataService.instance().log().pendingBufferSize()));
- info.put("COMMITS_PAUSED", Boolean.toString(service.commitsPaused()));
+ info.put("LOCAL_PENDING",
Integer.toString(cms.log().pendingBufferSize()));
+ info.put("COMMITS_PAUSED", Boolean.toString(cms.commitsPaused()));
info.put("REPLICATION_FACTOR",
ReplicationParams.meta(metadata).toString());
return info;
}
@@ -142,7 +142,7 @@ public class CMSOperations implements CMSOperationsMBean
public void sealPeriod()
{
logger.info("Sealing current period in metadata log");
- long period = ClusterMetadataService.instance().sealPeriod().period;
+ long period = cms.sealPeriod().period;
logger.info("Current period {} is sealed", period);
}
@@ -151,13 +151,13 @@ public class CMSOperations implements CMSOperationsMBean
{
if (!DatabaseDescriptor.getUnsafeTCMMode())
throw new IllegalStateException("Cluster is not running unsafe TCM
mode, can't revert epoch");
- ClusterMetadataService.instance().revertToEpoch(Epoch.create(epoch));
+ cms.revertToEpoch(Epoch.create(epoch));
}
@Override
public String dumpClusterMetadata(long epoch, long transformToEpoch,
String version) throws IOException
{
- return
ClusterMetadataService.instance().dumpClusterMetadata(Epoch.create(epoch),
Epoch.create(transformToEpoch), Version.valueOf(version));
+ return cms.dumpClusterMetadata(Epoch.create(epoch),
Epoch.create(transformToEpoch), Version.valueOf(version));
}
@Override
@@ -173,22 +173,22 @@ public class CMSOperations implements CMSOperationsMBean
{
if (!DatabaseDescriptor.getUnsafeTCMMode())
throw new IllegalStateException("Cluster is not running unsafe TCM
mode, can't load cluster metadata " + file);
- ClusterMetadataService.instance().loadClusterMetadata(file);
+ cms.loadClusterMetadata(file);
}
@Override
public void setCommitsPaused(boolean paused)
{
if (paused)
- ClusterMetadataService.instance().pauseCommits();
+ cms.pauseCommits();
else
- ClusterMetadataService.instance().resumeCommits();
+ cms.resumeCommits();
}
@Override
public boolean getCommitsPaused()
{
- return ClusterMetadataService.instance().commitsPaused();
+ return cms.commitsPaused();
}
@Override
diff --git a/src/java/org/apache/cassandra/tcm/CMSOperationsMBean.java
b/src/java/org/apache/cassandra/tcm/CMSOperationsMBean.java
index 76854a6674..926c09d1d3 100644
--- a/src/java/org/apache/cassandra/tcm/CMSOperationsMBean.java
+++ b/src/java/org/apache/cassandra/tcm/CMSOperationsMBean.java
@@ -26,9 +26,10 @@ public interface CMSOperationsMBean
{
public void initializeCMS(List<String> ignore);
public void resumeReconfigureCms();
- public void reconfigureCMS(int rf, boolean sync);
- public void reconfigureCMS(Map<String, Integer> rf, boolean sync);
+ public void reconfigureCMS(int rf);
+ public void reconfigureCMS(Map<String, Integer> rf);
public Map<String, List<String>> reconfigureCMSStatus();
+ public void cancelReconfigureCms();
public Map<String, String> describeCMS();
public void sealPeriod();
diff --git a/src/java/org/apache/cassandra/tcm/ownership/DataPlacements.java
b/src/java/org/apache/cassandra/tcm/ownership/DataPlacements.java
index cd427dbb9e..a59d923591 100644
--- a/src/java/org/apache/cassandra/tcm/ownership/DataPlacements.java
+++ b/src/java/org/apache/cassandra/tcm/ownership/DataPlacements.java
@@ -199,6 +199,12 @@ public class DataPlacements extends
ReplicationMap<DataPlacement> implements Met
return this;
}
+ public Builder without(ReplicationParams params)
+ {
+ map.remove(params);
+ return this;
+ }
+
public DataPlacements build()
{
return new DataPlacements(Epoch.EMPTY, map);
diff --git
a/src/java/org/apache/cassandra/tcm/sequences/CancelCMSReconfiguration.java
b/src/java/org/apache/cassandra/tcm/sequences/CancelCMSReconfiguration.java
index b8a8b2c6af..723cd3d709 100644
--- a/src/java/org/apache/cassandra/tcm/sequences/CancelCMSReconfiguration.java
+++ b/src/java/org/apache/cassandra/tcm/sequences/CancelCMSReconfiguration.java
@@ -19,16 +19,24 @@
package org.apache.cassandra.tcm.sequences;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.cassandra.exceptions.ExceptionCode;
import org.apache.cassandra.io.util.DataInputPlus;
import org.apache.cassandra.io.util.DataOutputPlus;
import org.apache.cassandra.locator.InetAddressAndPort;
import org.apache.cassandra.locator.Replica;
+import org.apache.cassandra.schema.DistributedSchema;
+import org.apache.cassandra.schema.KeyspaceMetadata;
+import org.apache.cassandra.schema.KeyspaceParams;
import org.apache.cassandra.schema.ReplicationParams;
+import org.apache.cassandra.schema.SchemaConstants;
import org.apache.cassandra.tcm.ClusterMetadata;
import org.apache.cassandra.tcm.Transformation;
+import org.apache.cassandra.tcm.membership.Directory;
import org.apache.cassandra.tcm.ownership.DataPlacement;
+import org.apache.cassandra.tcm.ownership.DataPlacements;
import org.apache.cassandra.tcm.ownership.EntireRange;
import org.apache.cassandra.tcm.serialization.AsymmetricMetadataSerializer;
import org.apache.cassandra.tcm.serialization.Version;
@@ -59,27 +67,57 @@ public class CancelCMSReconfiguration implements
Transformation
ReplicationParams metaParams = ReplicationParams.meta(prev);
ClusterMetadata.Transformer transformer = prev.transformer();
+ DataPlacement placement = prev.placements.get(metaParams);
+ // Reset any partially completed transition by removing the pending
replica from the write group
if (reconfigureCMS.next.activeTransition != null)
{
InetAddressAndPort pendingEndpoint =
prev.directory.endpoint(reconfigureCMS.next.activeTransition.nodeId);
Replica pendingReplica = new Replica(pendingEndpoint, entireRange,
true);
- DataPlacement.Builder builder =
prev.placements.get(metaParams).unbuild()
-
.withoutWriteReplica(prev.nextEpoch(), pendingReplica);
-
- DataPlacement placement = builder.build();
- if (!placement.reads.equals(placement.writes))
- return new Rejected(ExceptionCode.INVALID,
String.format("Placements will be inconsistent if this transformation is
applied:\nReads %s\nWrites: %s",
-
placement.reads,
-
placement.writes));
+ placement = placement.unbuild()
+ .withoutWriteReplica(prev.nextEpoch(),
pendingReplica)
+ .build();
+ }
+ if (!placement.reads.equals(placement.writes))
+ return new Rejected(ExceptionCode.INVALID,
String.format("Placements will be inconsistent if this transformation is
applied:\nReads %s\nWrites: %s",
+
placement.reads,
+
placement.writes));
+
+ // Reset the replication params for the meta keyspace based on the
actual placement in case they no longer match
+ ReplicationParams fromPlacement =
getAccurateReplication(prev.directory, placement);
+
+ // If they no longer match, i.e. the transitions completed so far did
not bring the placements into line with
+ // the configuration, remove the entry keyed by the existing
configured params.
+ DataPlacements.Builder builder = prev.placements.unbuild();
+ if (!metaParams.equals(fromPlacement))
+ {
+ builder = builder.without(metaParams);
- transformer =
transformer.with(prev.placements.unbuild().with(metaParams, placement).build());
+ // Also update schema with the corrected params
+ KeyspaceMetadata keyspace =
prev.schema.getKeyspaceMetadata(SchemaConstants.METADATA_KEYSPACE_NAME);
+ KeyspaceMetadata newKeyspace = keyspace.withSwapped(new
KeyspaceParams(keyspace.params.durableWrites, fromPlacement));
+ transformer = transformer.with(new
DistributedSchema(prev.schema.getKeyspaces().withAddedOrUpdated(newKeyspace)));
}
+ // finally, add the possibly corrected placement keyed by the possibly
corrected params
+ builder = builder.with(fromPlacement, placement);
+ transformer = transformer.with(builder.build());
+
return
Transformation.success(transformer.with(prev.inProgressSequences.without(ReconfigureCMS.SequenceKey.instance))
.with(prev.lockedRanges.unlock(reconfigureCMS.next.lockKey)),
EntireRange.affectedRanges(prev));
}
+ private ReplicationParams getAccurateReplication(Directory directory,
DataPlacement placement)
+ {
+ Map<String, Integer> replicasPerDc = new HashMap<>();
+ placement.writes.byEndpoint().keySet().forEach(i -> {
+ String dc = directory.location(directory.peerId(i)).datacenter;
+ int count = replicasPerDc.getOrDefault(dc, 0);
+ replicasPerDc.put(dc, ++count);
+ });
+ return ReplicationParams.ntsMeta(replicasPerDc);
+ }
+
@Override
public String toString()
{
diff --git a/src/java/org/apache/cassandra/tcm/sequences/ReconfigureCMS.java
b/src/java/org/apache/cassandra/tcm/sequences/ReconfigureCMS.java
index a3e65eead6..afa0e5d62b 100644
--- a/src/java/org/apache/cassandra/tcm/sequences/ReconfigureCMS.java
+++ b/src/java/org/apache/cassandra/tcm/sequences/ReconfigureCMS.java
@@ -255,6 +255,16 @@ public class ReconfigureCMS extends
MultiStepOperation<AdvanceCMSReconfiguration
}
+ @Override
+ public String toString()
+ {
+ return "ReconfigureCMS{" +
+ "next=" + next +
+ ", idx=" + idx +
+ ", latestModification=" + latestModification +
+ '}';
+ }
+
static void repairPaxosTopology()
{
Retry.Backoff retry = new
Retry.Backoff(TCMMetrics.instance.repairPaxosTopologyRetries);
@@ -344,6 +354,12 @@ public class ReconfigureCMS extends
MultiStepOperation<AdvanceCMSReconfiguration
private SequenceKey(){}
+ @Override
+ public String toString()
+ {
+ return "Reconfigure CMS";
+ }
+
public static class Serializer implements
MetadataSerializer<SequenceKey>
{
diff --git a/src/java/org/apache/cassandra/tools/nodetool/ReconfigureCMS.java
b/src/java/org/apache/cassandra/tools/nodetool/ReconfigureCMS.java
index 0feff7d9ea..7133a44dc9 100644
--- a/src/java/org/apache/cassandra/tools/nodetool/ReconfigureCMS.java
+++ b/src/java/org/apache/cassandra/tools/nodetool/ReconfigureCMS.java
@@ -42,10 +42,10 @@ public class ReconfigureCMS extends NodeTool.NodeToolCmd
description = "Whether or not a previously interrupted sequence should be
resumed")
private boolean resume = false;
- @Option(title = "sync",
- name = {"-s", "--sync"},
- description = "Whether or not nodetool should block and wait for
reconfiguration to finish")
- private boolean sync = false;
+ @Option(title = "cancel",
+ name = {"-c", "--cancel"},
+ description = "Cancels any in progress CMS reconfiguration")
+ private boolean cancel = false;
@Arguments(usage = "[<replication factor>] or
<datacenter>:<replication_factor> ... ", description = "Replication factor of
new CMS")
private List<String> args = new ArrayList<>();
@@ -76,6 +76,12 @@ public class ReconfigureCMS extends NodeTool.NodeToolCmd
return;
}
+ if (cancel)
+ {
+ probe.getCMSOperationsProxy().cancelReconfigureCms();
+ return;
+ }
+
if (args.isEmpty())
throw new IllegalArgumentException("Replication factor is empty");
@@ -95,7 +101,7 @@ public class ReconfigureCMS extends NodeTool.NodeToolCmd
{
throw new IllegalArgumentException(String.format("Can not
parse replication factor from %s", args.get(0)));
}
- probe.getCMSOperationsProxy().reconfigureCMS(parsedRf, sync);
+ probe.getCMSOperationsProxy().reconfigureCMS(parsedRf);
return;
}
else
@@ -117,6 +123,6 @@ public class ReconfigureCMS extends NodeTool.NodeToolCmd
}
}
- probe.getCMSOperationsProxy().reconfigureCMS(parsedRfs, sync);
+ probe.getCMSOperationsProxy().reconfigureCMS(parsedRfs);
}
}
diff --git
a/test/distributed/org/apache/cassandra/distributed/test/log/ReconfigureCMSTest.java
b/test/distributed/org/apache/cassandra/distributed/test/log/ReconfigureCMSTest.java
index 38a595b5af..0c23ac429d 100644
---
a/test/distributed/org/apache/cassandra/distributed/test/log/ReconfigureCMSTest.java
+++
b/test/distributed/org/apache/cassandra/distributed/test/log/ReconfigureCMSTest.java
@@ -35,7 +35,6 @@ import org.apache.cassandra.tcm.ClusterMetadata;
import org.apache.cassandra.tcm.ClusterMetadataService;
import org.apache.cassandra.tcm.ownership.DataPlacement;
import org.apache.cassandra.tcm.ownership.EntireRange;
-import org.apache.cassandra.tcm.sequences.CancelCMSReconfiguration;
import org.apache.cassandra.tcm.sequences.ProgressBarrier;
import org.apache.cassandra.tcm.sequences.ReconfigureCMS;
import org.apache.cassandra.tcm.transformations.cms.PrepareCMSReconfiguration;
@@ -55,9 +54,9 @@ public class ReconfigureCMSTest extends FuzzTestBase
cluster.setUncaughtExceptionsFilter(t -> t.getMessage() != null &&
t.getMessage().contains("There are not enough nodes in dc0 datacenter to
satisfy replication factor"));
Random rnd = new Random(2);
Supplier<Integer> nodeSelector = () -> rnd.nextInt(cluster.size()
- 1) + 1;
- cluster.get(nodeSelector.get()).nodetoolResult("reconfigurecms",
"--sync", "0").asserts().failure();
- cluster.get(nodeSelector.get()).nodetoolResult("reconfigurecms",
"--sync", "500").asserts().failure();
- cluster.get(nodeSelector.get()).nodetoolResult("reconfigurecms",
"--sync", "5").asserts().success();
+ cluster.get(nodeSelector.get()).nodetoolResult("reconfigurecms",
"0").asserts().failure();
+ cluster.get(nodeSelector.get()).nodetoolResult("reconfigurecms",
"500").asserts().failure();
+ cluster.get(nodeSelector.get()).nodetoolResult("reconfigurecms",
"5").asserts().success();
cluster.get(1).runOnInstance(() -> {
ClusterMetadata metadata = ClusterMetadata.current();
Assert.assertEquals(5, metadata.fullCMSMembers().size());
@@ -68,7 +67,7 @@ public class ReconfigureCMSTest extends FuzzTestBase
Assert.assertTrue(i.executeInternal(String.format("SELECT *
FROM %s.%s", SchemaConstants.METADATA_KEYSPACE_NAME,
DistributedMetadataLogKeyspace.TABLE_NAME)).length > 0);
});
- cluster.get(nodeSelector.get()).nodetoolResult("reconfigurecms",
"--sync", "1").asserts().success();
+ cluster.get(nodeSelector.get()).nodetoolResult("reconfigurecms",
"1").asserts().success();
cluster.get(1).runOnInstance(() -> {
ClusterMetadata metadata = ClusterMetadata.current();
Assert.assertEquals(1, metadata.fullCMSMembers().size());
@@ -88,7 +87,7 @@ public class ReconfigureCMSTest extends FuzzTestBase
.with(Feature.NETWORK, Feature.GOSSIP))
.start())
{
- cluster.get(1).nodetoolResult("reconfigurecms", "--sync",
"2").asserts().success();
+ cluster.get(1).nodetoolResult("reconfigurecms",
"2").asserts().success();
cluster.get(1).runOnInstance(() -> {
ClusterMetadataService.instance().commit(new
PrepareCMSReconfiguration.Complex(ReplicationParams.simple(3).asMeta()));
ReconfigureCMS reconfigureCMS = (ReconfigureCMS)
ClusterMetadata.current().inProgressSequences.get(ReconfigureCMS.SequenceKey.instance);
@@ -105,14 +104,17 @@ public class ReconfigureCMSTest extends FuzzTestBase
}
reconfigureCMS = (ReconfigureCMS)
ClusterMetadata.current().inProgressSequences.get(ReconfigureCMS.SequenceKey.instance);
Assert.assertNotNull(reconfigureCMS.next.activeTransition);
-
-
ClusterMetadataService.instance().commit(CancelCMSReconfiguration.instance);
+ });
+ cluster.get(1).nodetoolResult("reconfigurecms",
"--cancel").asserts().success();
+ cluster.get(1).runOnInstance(() -> {
ProgressBarrier.propagateLast(EntireRange.affectedRanges(ClusterMetadata.current()));
ClusterMetadata metadata = ClusterMetadata.current();
Assert.assertNull(metadata.inProgressSequences.get(ReconfigureCMS.SequenceKey.instance));
Assert.assertEquals(2, metadata.fullCMSMembers().size());
- DataPlacement placements =
metadata.placements.get(ReplicationParams.meta(metadata));
+ ReplicationParams params = ReplicationParams.meta(metadata);
+ DataPlacement placements = metadata.placements.get(params);
Assert.assertEquals(placements.reads, placements.writes);
+ Assert.assertEquals(metadata.fullCMSMembers().size(),
Integer.parseInt(params.asMap().get("dc0")));
});
cluster.get(1).runOnInstance(() -> {
@@ -127,8 +129,9 @@ public class ReconfigureCMSTest extends FuzzTestBase
ProgressBarrier.propagateLast(EntireRange.affectedRanges(ClusterMetadata.current()));
reconfigureCMS = (ReconfigureCMS)
ClusterMetadata.current().inProgressSequences.get(ReconfigureCMS.SequenceKey.instance);
Assert.assertNull(reconfigureCMS.next.activeTransition);
-
-
ClusterMetadataService.instance().commit(CancelCMSReconfiguration.instance);
+ });
+ cluster.get(1).nodetoolResult("reconfigurecms",
"--cancel").asserts().success();
+ cluster.get(1).runOnInstance(() -> {
ProgressBarrier.propagateLast(EntireRange.affectedRanges(ClusterMetadata.current()));
ClusterMetadata metadata = ClusterMetadata.current();
Assert.assertNull(metadata.inProgressSequences.get(ReconfigureCMS.SequenceKey.instance));
diff --git
a/test/distributed/org/apache/cassandra/distributed/test/log/TriggeredReconfigureCMSTest.java
b/test/distributed/org/apache/cassandra/distributed/test/log/TriggeredReconfigureCMSTest.java
index 1f46e04e1d..44b8cada6f 100644
---
a/test/distributed/org/apache/cassandra/distributed/test/log/TriggeredReconfigureCMSTest.java
+++
b/test/distributed/org/apache/cassandra/distributed/test/log/TriggeredReconfigureCMSTest.java
@@ -60,7 +60,7 @@ public class TriggeredReconfigureCMSTest extends FuzzTestBase
.with(Feature.NETWORK, Feature.GOSSIP))
.start())
{
- cluster.get(1).nodetoolResult("reconfigurecms", "--sync",
"3").asserts().success();
+ cluster.get(1).nodetoolResult("reconfigurecms",
"3").asserts().success();
Set<String> cms = getCMSMembers(cluster.get(1));
assertEquals(3, cms.size());
@@ -100,7 +100,7 @@ public class TriggeredReconfigureCMSTest extends
FuzzTestBase
.with(Feature.NETWORK, Feature.GOSSIP))
.start())
{
- cluster.get(1).nodetoolResult("reconfigurecms", "--sync",
"3").asserts().success();
+ cluster.get(1).nodetoolResult("reconfigurecms",
"3").asserts().success();
Set<String> cms = getCMSMembers(cluster.get(1));
assertEquals(3, cms.size());
cluster.get(1).nodetoolResult("decommission").asserts().success();
@@ -119,7 +119,7 @@ public class TriggeredReconfigureCMSTest extends
FuzzTestBase
.with(Feature.NETWORK, Feature.GOSSIP))
.start())
{
- cluster.get(1).nodetoolResult("reconfigurecms", "--sync",
"3").asserts().success();
+ cluster.get(1).nodetoolResult("reconfigurecms",
"3").asserts().success();
Set<String> cms = getCMSMembers(cluster.get(1));
assertEquals(3, cms.size());
assertTrue(cms.contains("/127.0.0.1"));
diff --git
a/test/distributed/org/apache/cassandra/distributed/upgrade/ClusterMetadataUpgradeHarryTest.java
b/test/distributed/org/apache/cassandra/distributed/upgrade/ClusterMetadataUpgradeHarryTest.java
index c8dffce52a..1ed127bbb6 100644
---
a/test/distributed/org/apache/cassandra/distributed/upgrade/ClusterMetadataUpgradeHarryTest.java
+++
b/test/distributed/org/apache/cassandra/distributed/upgrade/ClusterMetadataUpgradeHarryTest.java
@@ -118,7 +118,7 @@ public class ClusterMetadataUpgradeHarryTest extends
UpgradeTestBase
});
cluster.get(1).nodetoolResult("initializecms").asserts().success();
- cluster.get(1).nodetoolResult("reconfigurecms",
"datacenter1:3").asserts().success();
+ cluster.get(1).nodetoolResult("reconfigurecms",
"3").asserts().success();
cluster.schemaChange(withKeyspace("create table %s.xyz (id int
primary key)"));
stopLatch.decrement();
harryRunner.get().get();
diff --git
a/test/distributed/org/apache/cassandra/distributed/upgrade/ClusterMetadataUpgradeTest.java
b/test/distributed/org/apache/cassandra/distributed/upgrade/ClusterMetadataUpgradeTest.java
index f6a8f8b7c9..b6b501b54c 100644
---
a/test/distributed/org/apache/cassandra/distributed/upgrade/ClusterMetadataUpgradeTest.java
+++
b/test/distributed/org/apache/cassandra/distributed/upgrade/ClusterMetadataUpgradeTest.java
@@ -55,7 +55,7 @@ public class ClusterMetadataUpgradeTest extends
UpgradeTestBase
assertFalse("node " + i.config().num() + " is still in
MIGRATING STATE",
ClusterUtils.isMigrating((IInvokableInstance) i));
});
- cluster.get(2).nodetoolResult("reconfigurecms", "--sync",
"3").asserts().success();
+ cluster.get(2).nodetoolResult("reconfigurecms",
"3").asserts().success();
cluster.schemaChange(withKeyspace("create table %s.xyz (id int
primary key)"));
cluster.forEach(i -> {
Object [][] res = i.executeInternal("select host_id from
system.local");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]