Fix failed bootstrap/replace attempts being persisted in system.peers

Patch by brandonwilliams, reviewed by slebresne for CASSANDRA-9180


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

Branch: refs/heads/trunk
Commit: ac46747f84e62f6c9cbad0fb2e67a0eb95f43b01
Parents: def4835
Author: Brandon Williams <[email protected]>
Authored: Tue Apr 14 12:19:53 2015 -0500
Committer: Brandon Williams <[email protected]>
Committed: Tue Apr 14 12:19:53 2015 -0500

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../cassandra/service/StorageService.java       | 43 +++++++++++---------
 2 files changed, 24 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac46747f/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 772afd6..36d4b47 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.15:
+ * Fix failed bootstrap/replace attempts being persisted in system.peers 
(CASSANDRA-9180)
  * Flush system.IndexInfo after marking index built (CASSANDRA-9128)
  * Fix updates to min/max_compaction_threshold through cassandra-cli
    (CASSANDRA-8102)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ac46747f/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 cfd8fe1..e906f03 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1366,27 +1366,30 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
                 return;
             }
 
-            switch (state)
+            if (getTokenMetadata().isMember(endpoint))
             {
-                case RELEASE_VERSION:
-                    SystemKeyspace.updatePeerInfo(endpoint, "release_version", 
quote(value.value));
-                    break;
-                case DC:
-                    SystemKeyspace.updatePeerInfo(endpoint, "data_center", 
quote(value.value));
-                    break;
-                case RACK:
-                    SystemKeyspace.updatePeerInfo(endpoint, "rack", 
quote(value.value));
-                    break;
-                case RPC_ADDRESS:
-                    SystemKeyspace.updatePeerInfo(endpoint, "rpc_address", 
quote(value.value));
-                    break;
-                case SCHEMA:
-                    SystemKeyspace.updatePeerInfo(endpoint, "schema_version", 
value.value);
-                    MigrationManager.instance.scheduleSchemaPull(endpoint, 
epState);
-                    break;
-                case HOST_ID:
-                    SystemKeyspace.updatePeerInfo(endpoint, "host_id", 
value.value);
-                    break;
+                switch (state)
+                {
+                    case RELEASE_VERSION:
+                        SystemKeyspace.updatePeerInfo(endpoint, 
"release_version", quote(value.value));
+                        break;
+                    case DC:
+                        SystemKeyspace.updatePeerInfo(endpoint, "data_center", 
quote(value.value));
+                        break;
+                    case RACK:
+                        SystemKeyspace.updatePeerInfo(endpoint, "rack", 
quote(value.value));
+                        break;
+                    case RPC_ADDRESS:
+                        SystemKeyspace.updatePeerInfo(endpoint, "rpc_address", 
quote(value.value));
+                        break;
+                    case SCHEMA:
+                        SystemKeyspace.updatePeerInfo(endpoint, 
"schema_version", value.value);
+                        MigrationManager.instance.scheduleSchemaPull(endpoint, 
epState);
+                        break;
+                    case HOST_ID:
+                        SystemKeyspace.updatePeerInfo(endpoint, "host_id", 
value.value);
+                        break;
+                }
             }
         }
     }

Reply via email to