You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2016/06/22 10:02:18 UTC
[4/5] ignite git commit: IGNITE-3152 Client node's addresses are
registered in IP finder
IGNITE-3152 Client node's addresses are registered in IP finder
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8ce29a92
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8ce29a92
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8ce29a92
Branch: refs/heads/master
Commit: 8ce29a92d5e06d5a3d68aae0f6a2865ffd21a28c
Parents: 5177c33
Author: Anton Vinogradov <av...@apache.org>
Authored: Wed Jun 22 12:43:05 2016 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Wed Jun 22 12:58:10 2016 +0300
----------------------------------------------------------------------
.../ignite/spi/discovery/tcp/ServerImpl.java | 2 +-
.../vm/TcpDiscoveryVmIpFinderSelfTest.java | 75 ++++++++++++++++++++
2 files changed, 76 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/8ce29a92/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 38ed671..b1c56c0 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -4035,7 +4035,7 @@ class ServerImpl extends TcpDiscoveryImpl {
notifyDiscovery(EVT_NODE_JOINED, topVer, node);
try {
- if (spi.ipFinder.isShared() && locNodeCoord)
+ if (spi.ipFinder.isShared() && locNodeCoord && !node.isClient())
spi.ipFinder.registerAddresses(node.socketAddresses());
}
catch (IgniteSpiException e) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/8ce29a92/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinderSelfTest.java
index 86587ba..aa00007 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinderSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/ipfinder/vm/TcpDiscoveryVmIpFinderSelfTest.java
@@ -19,8 +19,16 @@ package org.apache.ignite.spi.discovery.tcp.ipfinder.vm;
import java.util.Arrays;
import java.util.Collections;
+import org.apache.ignite.Ignition;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.util.lang.GridAbsPredicate;
+import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.spi.IgniteSpiException;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinderAbstractSelfTest;
+import org.apache.ignite.testframework.GridTestUtils;
+
+import static org.apache.ignite.internal.processors.cache.binary.GridCacheBinaryObjectsAbstractSelfTest.IP_FINDER;
/**
* GridTcpDiscoveryVmIpFinder test.
@@ -190,4 +198,71 @@ public class TcpDiscoveryVmIpFinderSelfTest
assertEquals("Registered addresses: " + finder.getRegisteredAddresses().toString(),
10, finder.getRegisteredAddresses().size());
}
+
+ /**
+ *
+ */
+ public void testUnregistration() throws Exception {
+ Ignition.start(config("server1", false, false));
+
+ int srvSize = IP_FINDER.getRegisteredAddresses().size();
+
+ Ignition.start(config("server2", false, false));
+ Ignition.start(config("client1", true, false));
+
+ assertEquals(2 * srvSize, IP_FINDER.getRegisteredAddresses().size());
+
+ Ignition.start(config("client2", true, false));
+ Ignition.start(config("client3", true, false));
+
+ assertEquals(2 * srvSize, IP_FINDER.getRegisteredAddresses().size());
+
+ Ignition.start(config("client4", true, true));
+
+ assertEquals(3 * srvSize, IP_FINDER.getRegisteredAddresses().size());
+
+ Ignition.stop("client1", true);
+ Ignition.stop("client2", true);
+
+ assertEquals(3 * srvSize, IP_FINDER.getRegisteredAddresses().size());
+
+ Ignition.stop("client4", true);
+
+ GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override public boolean apply() {
+ return 2 == G.allGrids().size();
+ }
+ }, 10000);
+
+ Ignition.stop("server1", true);
+ Ignition.stop("server2", true);
+
+ GridTestUtils.waitForCondition(new GridAbsPredicate() {
+ @Override public boolean apply() {
+ return 0 == G.allGrids().size();
+ }
+ }, 10000);
+
+ assertTrue(3 * srvSize >= IP_FINDER.getRegisteredAddresses().size());
+ }
+
+ /**
+ * @param name Name.
+ * @param client Client.
+ */
+ private static IgniteConfiguration config(String name, boolean client, boolean forceServerMode) {
+ IgniteConfiguration cfg = new IgniteConfiguration();
+
+ cfg.setGridName(name);
+ cfg.setClientMode(client);
+
+ TcpDiscoverySpi disco = new TcpDiscoverySpi();
+
+ disco.setForceServerMode(forceServerMode);
+ disco.setIpFinder(IP_FINDER);
+
+ cfg.setDiscoverySpi(disco);
+
+ return cfg;
+ }
}
\ No newline at end of file