You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2014/06/09 21:28:58 UTC
[02/10] git commit: Check all INTERNAL_IP states for seed match.
Check all INTERNAL_IP states for seed match.
Patch by Brandon Williams, reviewed by Jason Brown for CASSANDRA-6523
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/47edb3c0
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/47edb3c0
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/47edb3c0
Branch: refs/heads/cassandra-2.0
Commit: 47edb3c061bf269ab79ae5a782197cc3040dad89
Parents: ce98b2d
Author: Brandon Williams <br...@apache.org>
Authored: Mon Jun 9 14:04:35 2014 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Mon Jun 9 14:04:35 2014 -0500
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../gms/GossipDigestAckVerbHandler.java | 1 -
.../gms/GossipDigestSynVerbHandler.java | 1 -
src/java/org/apache/cassandra/gms/Gossiper.java | 25 ++++++++++++--------
4 files changed, 16 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/47edb3c0/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 11ded69..a50825f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
1.2.17
+ * Check internal addresses for seeds (CASSANDRA-6523)
* Fix potential / by 0 in HHOM page size calculation (CASSANDRA-7354)
* Fix handling of empty counter replication mutations (CASSANDRA-7144)
* Use LOCAL_ONE for non-superuser auth queries (CASSANDRA-7328)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/47edb3c0/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java b/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java
index b2af3a2..ebfdd7e 100644
--- a/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java
+++ b/src/java/org/apache/cassandra/gms/GossipDigestAckVerbHandler.java
@@ -58,7 +58,6 @@ public class GossipDigestAckVerbHandler implements IVerbHandler<GossipDigestAck>
Gossiper.instance.applyStateLocally(epStateMap);
}
- Gossiper.instance.checkSeedContact(from);
if (Gossiper.instance.isInShadowRound())
{
if (logger.isDebugEnabled())
http://git-wip-us.apache.org/repos/asf/cassandra/blob/47edb3c0/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java b/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java
index 476cb72..f6de521 100644
--- a/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java
+++ b/src/java/org/apache/cassandra/gms/GossipDigestSynVerbHandler.java
@@ -82,7 +82,6 @@ public class GossipDigestSynVerbHandler implements IVerbHandler<GossipDigestSyn>
GossipDigestAck.serializer);
if (logger.isTraceEnabled())
logger.trace("Sending a GossipDigestAckMessage to {}", from);
- Gossiper.instance.checkSeedContact(from);
MessagingService.instance().sendOneWay(gDigestAckMessage, from);
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/47edb3c0/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 5d2780e..caadb3e 100644
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@ -104,9 +104,6 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean
private final Map<InetAddress, Long> expireTimeEndpointMap = new ConcurrentHashMap<InetAddress, Long>();
- // have we ever in our lifetime reached a seed?
- private boolean seedContacted = false;
-
private boolean inShadowRound = false;
private class GossipTask implements Runnable
@@ -189,15 +186,23 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean
}
}
- protected void checkSeedContact(InetAddress ep)
- {
- if (!seedContacted && seeds.contains(ep))
- seedContacted = true;
- }
-
public boolean seenAnySeed()
{
- return seedContacted;
+ for (Map.Entry<InetAddress, EndpointState> entry : endpointStateMap.entrySet())
+ {
+ if (seeds.contains(entry.getKey()))
+ return true;
+ try
+ {
+ if (entry.getValue().getApplicationStateMap().keySet().contains(ApplicationState.INTERNAL_IP) && seeds.contains(InetAddress.getByName(entry.getValue().getApplicationState(ApplicationState.INTERNAL_IP).value)))
+ return true;
+ }
+ catch (UnknownHostException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ return false;
}
/**