You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ca...@apache.org on 2016/09/01 20:41:59 UTC

cassandra git commit: Add local address entry in PropertyFileSnitch

Repository: cassandra
Updated Branches:
  refs/heads/trunk 2f044b0f7 -> 262f1673d


Add local address entry in PropertyFileSnitch

Patch by Branimir Lambov; reviewed by Carl Yeksigian for CASSANDRA-11332


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

Branch: refs/heads/trunk
Commit: 262f1673d7b62e7578c14b9399e32285cd14aee9
Parents: 2f044b0
Author: blambov <br...@datastax.com>
Authored: Thu Sep 1 14:30:05 2016 -0400
Committer: Carl Yeksigian <ca...@apache.org>
Committed: Thu Sep 1 14:30:39 2016 -0400

----------------------------------------------------------------------
 CHANGES.txt                                              |  1 +
 .../org/apache/cassandra/locator/PropertyFileSnitch.java | 11 +++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/262f1673/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index f567892..af4bda5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.10
+ * Add local address entry in PropertyFileSnitch (CASSANDRA-11332)
  * Cleanup uses of AlterTableStatementColumn (CASSANDRA-12567)
  * Add keep-alive to streaming (CASSANDRA-11841)
  * Tracing payload is passed through newSession(..) (CASSANDRA-11706)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/262f1673/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java b/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
index bfd8e8e..8cc6549 100644
--- a/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
+++ b/src/java/org/apache/cassandra/locator/PropertyFileSnitch.java
@@ -186,10 +186,17 @@ public class PropertyFileSnitch extends AbstractNetworkTopologySnitch
                 reloadedMap.put(host, token);
             }
         }
-        if (reloadedDefaultDCRack == null && !reloadedMap.containsKey(FBUtilities.getBroadcastAddress()))
+        InetAddress broadcastAddress = FBUtilities.getBroadcastAddress();
+        String[] localInfo = reloadedMap.get(broadcastAddress);
+        if (reloadedDefaultDCRack == null && localInfo == null)
             throw new ConfigurationException(String.format("Snitch definitions at %s do not define a location for " +
                                                            "this node's broadcast address %s, nor does it provides a default",
-                                                           SNITCH_PROPERTIES_FILENAME, FBUtilities.getBroadcastAddress()));
+                                                           SNITCH_PROPERTIES_FILENAME, broadcastAddress));
+        // OutboundTcpConnectionPool.getEndpoint() converts our broadcast address to local,
+        // make sure we can be found at that as well.
+        InetAddress localAddress = FBUtilities.getLocalAddress();
+        if (!localAddress.equals(broadcastAddress) && !reloadedMap.containsKey(localAddress))
+            reloadedMap.put(localAddress, localInfo);
 
         if (isUpdate && !livenessCheck(reloadedMap, reloadedDefaultDCRack))
             return;