Updated Branches: refs/heads/cassandra-1.2 79764f743 -> ec35427fd
Don't remove tokens for node we know in System.peers patch by slebresne; reviewed by driftx for CASSANDRA-5121 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ec35427f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ec35427f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ec35427f Branch: refs/heads/cassandra-1.2 Commit: ec35427fdfbc46a8adeafc042651f552b9bcc1a0 Parents: 79764f7 Author: Sylvain Lebresne <[email protected]> Authored: Tue Jan 15 16:24:54 2013 +0100 Committer: Sylvain Lebresne <[email protected]> Committed: Tue Jan 15 16:24:54 2013 +0100 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/SystemTable.java | 1 + .../apache/cassandra/service/StorageService.java | 3 ++- 3 files changed, 4 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ec35427f/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 2e8d2c9..32ed9fa 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -34,6 +34,7 @@ * Validate login for describe_keyspace, describe_keyspaces and set_keyspace (CASSANDRA-5144) * Fix inserting empty maps (CASSANDRA-5141) + * Don't remove tokens from System table for node we know (CASSANDRA-5121) Merged from 1.1: * Simplify CompressedRandomAccessReader to work around JDK FD bug (CASSANDRA-5088) * Improve handling a changing target throttle rate mid-compaction (CASSANDRA-5087) http://git-wip-us.apache.org/repos/asf/cassandra/blob/ec35427f/src/java/org/apache/cassandra/db/SystemTable.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/SystemTable.java b/src/java/org/apache/cassandra/db/SystemTable.java index 8f60904..18a2666 100644 --- a/src/java/org/apache/cassandra/db/SystemTable.java +++ b/src/java/org/apache/cassandra/db/SystemTable.java @@ -321,6 +321,7 @@ public class SystemTable */ public static synchronized void updateTokens(Collection<Token> tokens) { + assert !tokens.isEmpty() : "removeTokens should be used instead"; String req = "INSERT INTO system.%s (key, tokens) VALUES ('%s', %s)"; processInternal(String.format(req, LOCAL_CF, LOCAL_KEY, tokensAsSet(tokens))); forceBlockingFlush(LOCAL_CF); http://git-wip-us.apache.org/repos/asf/cassandra/blob/ec35427f/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 efa7487..fe3ee93 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1388,7 +1388,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE tokenMetadata.updateNormalTokens(tokensToUpdateInMetadata, endpoint); for (InetAddress ep : endpointsToRemove) Gossiper.instance.removeEndpoint(ep); - SystemTable.updateTokens(endpoint, tokensToUpdateInSystemTable); + if (!tokensToUpdateInSystemTable.isEmpty()) + SystemTable.updateTokens(endpoint, tokensToUpdateInSystemTable); SystemTable.updateLocalTokens(Collections.<Token>emptyList(), localTokensToRemove); if (tokenMetadata.isMoving(endpoint)) // if endpoint was moving to a new token
