Don't initiate snitch reconnection for dead states Patch by brandonwilliams, reviewed by John Alberts for CASSANDRA-7292
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a9252623 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a9252623 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a9252623 Branch: refs/heads/trunk Commit: a925262395f1e735ada0ba35c8e41042be1807fb Parents: b4fae85 Author: Brandon Williams <brandonwilli...@apache.org> Authored: Fri Apr 17 17:36:55 2015 -0500 Committer: Brandon Williams <brandonwilli...@apache.org> Committed: Fri Apr 17 17:38:44 2015 -0500 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../apache/cassandra/locator/ReconnectableSnitchHelper.java | 9 +++------ 2 files changed, 4 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9252623/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 80ab11c..2777d79 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -81,6 +81,7 @@ * Use stdout for progress and stats in sstableloader (CASSANDRA-8982) * Correctly identify 2i datadir from older versions (CASSANDRA-9116) Merged from 2.0: + * Don't initiate snitch reconnection for dead states (CASSANDRA-7292) * Fix ArrayIndexOutOfBoundsException in CQLSSTableWriter (CASSANDRA-8978) * Add shutdown gossip state to prevent timeouts during rolling restarts (CASSANDRA-8336) * Fix running with java.net.preferIPv6Addresses=true (CASSANDRA-9137) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a9252623/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java b/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java index d797393..1642561 100644 --- a/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java +++ b/src/java/org/apache/cassandra/locator/ReconnectableSnitchHelper.java @@ -21,10 +21,7 @@ package org.apache.cassandra.locator; import java.net.InetAddress; import java.net.UnknownHostException; -import org.apache.cassandra.gms.ApplicationState; -import org.apache.cassandra.gms.EndpointState; -import org.apache.cassandra.gms.IEndpointStateChangeSubscriber; -import org.apache.cassandra.gms.VersionedValue; +import org.apache.cassandra.gms.*; import org.apache.cassandra.net.MessagingService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -78,13 +75,13 @@ public class ReconnectableSnitchHelper implements IEndpointStateChangeSubscriber public void onJoin(InetAddress endpoint, EndpointState epState) { - if (preferLocal && epState.getApplicationState(ApplicationState.INTERNAL_IP) != null) + if (preferLocal && !Gossiper.instance.isDeadState(epState) && epState.getApplicationState(ApplicationState.INTERNAL_IP) != null) reconnect(endpoint, epState.getApplicationState(ApplicationState.INTERNAL_IP)); } public void onChange(InetAddress endpoint, ApplicationState state, VersionedValue value) { - if (preferLocal && state == ApplicationState.INTERNAL_IP) + if (preferLocal && !Gossiper.instance.isDeadState(epState) && state == ApplicationState.INTERNAL_IP) reconnect(endpoint, value); }