Ignore fat clients when checking for endpoint collision Patch by brandonwilliams, reviewed by tjake for CASSANDRA-7939
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6b8b8e0f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6b8b8e0f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6b8b8e0f Branch: refs/heads/trunk Commit: 6b8b8e0f924b53b9f99854f88ff9ba84073cb295 Parents: 3db38d7 Author: Brandon Williams <brandonwilli...@apache.org> Authored: Mon Sep 29 09:46:02 2014 -0500 Committer: Brandon Williams <brandonwilli...@apache.org> Committed: Mon Sep 29 09:46:02 2014 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/StorageService.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b8b8e0f/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 40e2f2c..dd5f7dd 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.11: + * Ignore fat clients when checking for endpoint collision (CASSANDRA-7939) * CrcCheckChance should adjust based on live CFMetadata not sstable metadata (CASSANDRA-7978) * token() should only accept columns in the partitioning http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b8b8e0f/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 f693a0b..11eb91d 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -444,7 +444,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE MessagingService.instance().listen(FBUtilities.getLocalAddress()); Gossiper.instance.doShadowRound(); EndpointState epState = Gossiper.instance.getEndpointStateForEndpoint(FBUtilities.getBroadcastAddress()); - if (epState != null && !Gossiper.instance.isDeadState(epState)) + if (epState != null && !Gossiper.instance.isDeadState(epState) && !Gossiper.instance.isFatClient(FBUtilities.getBroadcastAddress())) { throw new RuntimeException(String.format("A node with address %s already exists, cancelling join. " + "Use cassandra.replace_address if you want to replace this node.",