Don't allow simultaneous bootstrap when cassandra.consistent.rangemovement is 
true

Patch by brandonwilliams, reviewed by tjake for CASSANDRA-7069


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/094aa8ef
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/094aa8ef
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/094aa8ef

Branch: refs/heads/trunk
Commit: 094aa8ef2be1f1c832b6baa7e2f25a1f220b279e
Parents: db3cc3e
Author: Brandon Williams <brandonwilli...@apache.org>
Authored: Mon Sep 15 06:52:35 2014 +0000
Committer: Brandon Williams <brandonwilli...@apache.org>
Committed: Mon Sep 15 06:52:35 2014 +0000

----------------------------------------------------------------------
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/service/StorageService.java | 8 ++++++++
 2 files changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/094aa8ef/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 7e18719..608e4b1 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.1.1
+ * Prevent operator mistakes due to simultaneous bootstrap (CASSANDRA-7069)
  * cassandra-stress supports whitelist mode for node config
  * GCInspector more closely tracks GC; cassandra-stress and nodetool report it
  * nodetool won't output bogus ownership info without a keyspace 
(CASSANDRA-7173)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/094aa8ef/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 86412ba..1aa3b24 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -748,6 +748,14 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
             if (logger.isDebugEnabled())
                 logger.debug("... got ring + schema info");
 
+            if 
(Boolean.parseBoolean(System.getProperty("cassandra.consistent.rangemovement", 
"true")) &&
+                    (
+                        tokenMetadata.getBootstrapTokens().valueSet().size() > 
0 ||
+                        tokenMetadata.getLeavingEndpoints().size() > 0 ||
+                        tokenMetadata.getMovingEndpoints().size() > 0
+                    ))
+                throw new UnsupportedOperationException("Other 
bootstrapping/leaving/moving nodes detected, cannot bootstrap while 
cassandra.consistent.rangemovement is true");
+
             if (!DatabaseDescriptor.isReplacing())
             {
                 if (tokenMetadata.isMember(FBUtilities.getBroadcastAddress()))

Reply via email to