Repository: cassandra
Updated Branches:
  refs/heads/trunk 3f55c35b8 -> 507b6c029


Emit MOVED_NODE topology event when a node moves

Patch by Adam Holmberg; reviewed by Tyler Hobbs for CASSANDRA-8373


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

Branch: refs/heads/trunk
Commit: d8bce5017e1d1cdc96807ff5207706a0e150487f
Parents: 345e69e
Author: Adam Holmberg <adam.holmb...@datastax.com>
Authored: Thu Dec 18 18:38:35 2014 -0600
Committer: Tyler Hobbs <ty...@datastax.com>
Committed: Thu Dec 18 18:38:35 2014 -0600

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


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8bce501/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index d429f2e..bad24e7 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.0.12:
+ * Fix MOVED_NODE topology event never being emitted when a node
+   moves its token (CASSANDRA-8373)
  * Fix validation of indexes in COMPACT tables (CASSANDRA-8156)
  * Avoid StackOverflowError when a large list of IN values
    is used for a clustering column (CASSANDRA-8410)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8bce501/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 0456907..3daa66f 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1605,6 +1605,7 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
             }
         }
 
+        boolean isMoving = tokenMetadata.isMoving(endpoint); // capture 
because updateNormalTokens clears moving status
         tokenMetadata.updateNormalTokens(tokensToUpdateInMetadata, endpoint);
         for (InetAddress ep : endpointsToRemove)
         {
@@ -1617,7 +1618,7 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
         if (!localTokensToRemove.isEmpty())
             SystemKeyspace.updateLocalTokens(Collections.<Token>emptyList(), 
localTokensToRemove);
 
-        if (tokenMetadata.isMoving(endpoint)) // if endpoint was moving to a 
new token
+        if (isMoving)
         {
             tokenMetadata.removeFromMoving(endpoint);
 

Reply via email to