TCP communication skip local node loopback address
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 1dd48d1..15faeb3 100755
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -2987,6 +2987,10 @@
if (isExtAddrsExist)
addrs.addAll(extAddrs);
+ if (log.isDebugEnabled())
+ log.debug("Addresses resolved from attributes [rmtNode=" + node.id() + ", addrs=" + addrs +
+ ", isRmtAddrsExist=" + isRmtAddrsExist + ']');
+
Set<InetAddress> allInetAddrs = U.newHashSet(addrs.size());
for (InetSocketAddress addr : addrs) {
@@ -3015,7 +3019,7 @@
}
if (log.isDebugEnabled())
- log.debug("Addresses to connect for node [rmtNode=" + node.id() + ", addrs=" + addrs.toString() + ']');
+ log.debug("Addresses to connect for node [rmtNode=" + node.id() + ", addrs=" + addrs + ']');
boolean conn = false;
GridCommunicationClient client = null;
@@ -3024,6 +3028,15 @@
int connectAttempts = 1;
for (InetSocketAddress addr : addrs) {
+ if (addr.getAddress().isLoopbackAddress() && addr.getPort() == boundTcpPort) {
+ if (log.isDebugEnabled())
+ log.debug("Skipping local address [addr=" + addr +
+ ", locAddrs=" + node.attribute(createSpiAttributeName(ATTR_ADDRS)) +
+ ", node=" + node + ']');
+
+ continue;
+ }
+
long connTimeout0 = connTimeout;
int attempt = 1;