Try harder to not let a node flap after the gossip goodbye.
Patch by brandonwilliams, reviewed by jasobrown for CASSANDRA-5254


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

Branch: refs/heads/cassandra-1.2
Commit: 62b1ee40b69540c01dcbf960c8a96df4b7d55336
Parents: 86e2cc5
Author: Brandon Williams <[email protected]>
Authored: Wed Mar 6 15:52:30 2013 -0600
Committer: Brandon Williams <[email protected]>
Committed: Wed Mar 6 16:09:18 2013 -0600

----------------------------------------------------------------------
 .../cassandra/gms/GossipDigestAck2VerbHandler.java |    7 +++++++
 src/java/org/apache/cassandra/gms/Gossiper.java    |    2 +-
 2 files changed, 8 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b1ee40/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java 
b/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java
index 3fb9255..92b8463 100644
--- a/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java
+++ b/src/java/org/apache/cassandra/gms/GossipDigestAck2VerbHandler.java
@@ -37,6 +37,13 @@ public class GossipDigestAck2VerbHandler implements 
IVerbHandler<GossipDigestAck
             InetAddress from = message.from;
             logger.trace("Received a GossipDigestAck2Message from {}", from);
         }
+        if (!Gossiper.instance.isEnabled())
+        {
+            if (logger.isTraceEnabled())
+                logger.trace("Ignoring GossipDigestAck2Message because gossip 
is disabled");
+            return;
+        }
+
         Map<InetAddress, EndpointState> remoteEpStateMap = 
message.payload.getEndpointStateMap();
         /* Notify the Failure Detector */
         Gossiper.instance.notifyFailureDetector(remoteEpStateMap);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/62b1ee40/src/java/org/apache/cassandra/gms/Gossiper.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java 
b/src/java/org/apache/cassandra/gms/Gossiper.java
index c9d0d51..60ca850 100644
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@ -1077,7 +1077,7 @@ public class Gossiper implements 
IFailureDetectionEventListener, GossiperMBean
         logger.info("Announcing shutdown");
         try
         {
-            Thread.sleep(intervalInMillis);
+            Thread.sleep(intervalInMillis * 2);
         }
         catch (InterruptedException e)
         {

Reply via email to