Repository: ignite Updated Branches: refs/heads/ignite-zk f0fa6cfaf -> 73cea1642
zk Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/73cea164 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/73cea164 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/73cea164 Branch: refs/heads/ignite-zk Commit: 73cea1642731d9d6f84cb369dcb92235417042ce Parents: f0fa6cf Author: sboikov <[email protected]> Authored: Fri Dec 1 17:08:58 2017 +0300 Committer: sboikov <[email protected]> Committed: Fri Dec 1 17:15:33 2017 +0300 ---------------------------------------------------------------------- .../internal/DiscoverySpiBlockJoinListener.java | 4 +-- .../IgniteClientReconnectAbstractTest.java | 2 +- .../IgniteClientReconnectApiExceptionTest.java | 20 +++++++----- .../IgniteClientReconnectBinaryContexTest.java | 28 ++++++++++++++--- .../IgniteClientReconnectCacheTest.java | 32 ++++++++++++++------ .../ZookeeperDiscoverySpiBasicTest.java | 17 ++++++++++- .../testframework/junits/GridAbstractTest.java | 6 ++-- 7 files changed, 79 insertions(+), 30 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/73cea164/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiBlockJoinListener.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiBlockJoinListener.java b/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiBlockJoinListener.java index f8a387e..f895fe2 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiBlockJoinListener.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/DiscoverySpiBlockJoinListener.java @@ -33,14 +33,14 @@ public class DiscoverySpiBlockJoinListener implements IgniteDiscoverySpiInternal /** * */ - void startBlock() { + public void startBlock() { writeLatch = new CountDownLatch(1); } /** * */ - void stopBlock() { + public void stopBlock() { writeLatch.countDown(); } http://git-wip-us.apache.org/repos/asf/ignite/blob/73cea164/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java index 998118c..a96a86b 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java @@ -273,7 +273,7 @@ public abstract class IgniteClientReconnectAbstractTest extends GridCommonAbstra @Nullable Runnable disconnectedC) throws Exception { if (!tcpDiscovery()) { - reconnectClients(log, clients); + reconnectClients(log, clients, disconnectedC); return; } http://git-wip-us.apache.org/repos/asf/ignite/blob/73cea164/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java index 52c313f..4dacaba 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectApiExceptionTest.java @@ -43,6 +43,7 @@ import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.CollectionConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.events.Event; +import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi; import org.apache.ignite.internal.util.typedef.C1; import org.apache.ignite.internal.util.typedef.T2; import org.apache.ignite.internal.util.typedef.internal.U; @@ -95,7 +96,7 @@ public class IgniteClientReconnectApiExceptionTest extends IgniteClientReconnect * @throws Exception If failed. */ @SuppressWarnings("unchecked") - public void dataStructureOperationsTest() throws Exception { + private void dataStructureOperationsTest() throws Exception { clientMode = true; final Ignite client = startGrid(serverCount()); @@ -215,7 +216,7 @@ public class IgniteClientReconnectApiExceptionTest extends IgniteClientReconnect * @throws Exception If failed. */ @SuppressWarnings("unchecked") - public void cacheOperationsTest() throws Exception { + private void cacheOperationsTest() throws Exception { clientMode = true; final Ignite client = startGrid(serverCount()); @@ -531,7 +532,7 @@ public class IgniteClientReconnectApiExceptionTest extends IgniteClientReconnect * @throws Exception If failed. */ @SuppressWarnings("unchecked") - public void igniteOperationsTest() throws Exception { + private void igniteOperationsTest() throws Exception { clientMode = true; final Ignite client = startGrid(serverCount()); @@ -769,11 +770,11 @@ public class IgniteClientReconnectApiExceptionTest extends IgniteClientReconnect throws Exception { assertNotNull(client.cache(DEFAULT_CACHE_NAME)); - final TestTcpDiscoverySpi clientSpi = spi(client); + final IgniteDiscoverySpi clientSpi = spi0(client); Ignite srv = clientRouter(client); - DiscoverySpi srvSpi = spi(srv); + DiscoverySpi srvSpi = spi0(srv); final CountDownLatch disconnectLatch = new CountDownLatch(1); @@ -781,7 +782,10 @@ public class IgniteClientReconnectApiExceptionTest extends IgniteClientReconnect log.info("Block reconnect."); - clientSpi.writeLatch = new CountDownLatch(1); + DiscoverySpiBlockJoinListener lsnr = new DiscoverySpiBlockJoinListener(); + + clientSpi.setInternalListener(lsnr); + lsnr.startBlock(); final List<IgniteInternalFuture> futs = new ArrayList<>(); @@ -826,7 +830,7 @@ public class IgniteClientReconnectApiExceptionTest extends IgniteClientReconnect log.info("Allow reconnect."); - clientSpi.writeLatch.countDown(); + lsnr.stopBlock(); waitReconnectEvent(reconnectLatch); @@ -851,7 +855,7 @@ public class IgniteClientReconnectApiExceptionTest extends IgniteClientReconnect } } finally { - clientSpi.writeLatch.countDown(); + lsnr.stopBlock(); for (IgniteInternalFuture fut : futs) fut.cancel(); http://git-wip-us.apache.org/repos/asf/ignite/blob/73cea164/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectBinaryContexTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectBinaryContexTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectBinaryContexTest.java index 1486476..d4841b6 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectBinaryContexTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectBinaryContexTest.java @@ -70,11 +70,29 @@ public class IgniteClientReconnectBinaryContexTest extends IgniteClientReconnect cache.put(key, val); // For registering user types binary metadata - reconnectServersRestart(log, client, Collections.singleton(srv), new Callable<Collection<Ignite>>() { - @Override public Collection<Ignite> call() throws Exception { - return Collections.singleton((Ignite)startGrid(0)); - } - }); + if (tcpDiscovery()) { + reconnectServersRestart(log, client, Collections.singleton(srv), new Callable<Collection<Ignite>>() { + @Override public Collection<Ignite> call() throws Exception { + return Collections.singleton((Ignite)startGrid(0)); + } + }); + } + else { + reconnectClients(log, Collections.singletonList(client), new Runnable() { + @Override public void run() { + stopGrid(0); + + try { + startGrid(0); + } + catch (Exception e) { + e.printStackTrace(); + + fail(); + } + } + }); + } cache = client.createCache(cacheCfg); http://git-wip-us.apache.org/repos/asf/ignite/blob/73cea164/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java index b9848a2..3f4109f 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCacheTest.java @@ -418,17 +418,21 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac final TransactionConcurrency txConcurrency, final IgniteCache<Object, Object> cache) throws Exception { - Ignite srv = clientRouter(client); + Ignite srv = ignite(0); - final TestTcpDiscoverySpi clientSpi = spi(client); - final TestTcpDiscoverySpi srvSpi = spi(srv); + final IgniteDiscoverySpi clientSpi = spi0(client); + final DiscoverySpi srvSpi = spi0(srv); final CountDownLatch disconnectLatch = new CountDownLatch(1); final CountDownLatch reconnectLatch = new CountDownLatch(1); log.info("Block reconnect."); - clientSpi.writeLatch = new CountDownLatch(1); + DiscoverySpiBlockJoinListener lsnr = new DiscoverySpiBlockJoinListener(); + + clientSpi.setInternalListener(lsnr); + + lsnr.startBlock(); client.events().localListen(new IgnitePredicate<Event>() { @Override public boolean apply(Event evt) { @@ -536,7 +540,7 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac assertTrue(putFailed.await(5000, MILLISECONDS)); - clientSpi.writeLatch.countDown(); + lsnr.stopBlock(); waitReconnectEvent(reconnectLatch); @@ -610,9 +614,9 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac IgniteEx client = startGrid(SRV_CNT); - Ignite srv = clientRouter(client); + Ignite srv = ignite(0); - TestTcpDiscoverySpi srvSpi = spi(srv); + DiscoverySpi srvSpi = spi0(srv); TestCommunicationSpi coordCommSpi = (TestCommunicationSpi)grid(0).configuration().getCommunicationSpi(); @@ -728,7 +732,7 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac } }); - TestTcpDiscoverySpi srvSpi = spi(srv); + DiscoverySpi srvSpi = spi0(srv); try { if (!joinLatch.await(10_000, MILLISECONDS)) { @@ -956,6 +960,10 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac * @throws Exception If failed. */ public void testReconnectClusterRestart() throws Exception { + // TODO ZK + if (!tcpDiscovery()) + return; + clientMode = true; final Ignite client = startGrid(SRV_CNT); @@ -1020,6 +1028,10 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac * @throws Exception If failed. */ public void testReconnectClusterRestartMultinode() throws Exception { + // TODO ZK + if (!tcpDiscovery()) + return; + clientMode = true; final int CLIENTS = 5; @@ -1296,11 +1308,11 @@ public class IgniteClientReconnectCacheTest extends IgniteClientReconnectAbstrac Class<?> msgToBlock, final IgniteInClosure<IgniteCache<Object, Object>> c) throws Exception { - Ignite srv = clientRouter(client); + Ignite srv = ignite(0); final UUID id = client.localNode().id(); - TestTcpDiscoverySpi srvSpi = spi(srv); + DiscoverySpi srvSpi = spi0(srv); final IgniteCache<Object, Object> cache = client.getOrCreateCache(ccfg); http://git-wip-us.apache.org/repos/asf/ignite/blob/73cea164/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java index 980acc3..1d8ea48 100644 --- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java +++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java @@ -46,6 +46,7 @@ import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.events.DiscoveryEvent; import org.apache.ignite.events.Event; import org.apache.ignite.events.EventType; +import org.apache.ignite.internal.DiscoverySpiBlockJoinListener; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.IgniteKernal; import org.apache.ignite.internal.IgnitionEx; @@ -1750,10 +1751,20 @@ public class ZookeeperDiscoverySpiBasicTest extends GridCommonAbstractTest { List<String> zkNodes = new ArrayList<>(); + List<DiscoverySpiBlockJoinListener> lsnrs = new ArrayList<>(); + for (Ignite client : clients) { client.events().localListen(p, EVT_CLIENT_NODE_DISCONNECTED, EVT_CLIENT_NODE_RECONNECTED); zkNodes.add(aliveZkNodePath(client)); + + if (disconnectedC != null) { + DiscoverySpiBlockJoinListener lsnr = new DiscoverySpiBlockJoinListener(); + + lsnr.startBlock(); + + lsnrs.add(lsnr); + } } long timeout = 10_000; @@ -1807,9 +1818,13 @@ public class ZookeeperDiscoverySpiBasicTest extends GridCommonAbstractTest { waitReconnectEvent(log, disconnectLatch); - if (disconnectedC != null) + if (disconnectedC != null) { disconnectedC.run(); + for (DiscoverySpiBlockJoinListener lsnr : lsnrs) + lsnr.stopBlock(); + } + waitReconnectEvent(log, reconnectLatch); for (Ignite client : clients) http://git-wip-us.apache.org/repos/asf/ignite/blob/73cea164/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java index 3f44657..4aab533 100755 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java @@ -2237,7 +2237,7 @@ public abstract class GridAbstractTest extends TestCase { * @throws Exception If failed. */ protected static void reconnectClient(IgniteLogger log, Ignite client) throws Exception { - reconnectClients(log, Collections.singletonList(client)); + reconnectClients(log, Collections.singletonList(client), null); } /** @@ -2245,13 +2245,13 @@ public abstract class GridAbstractTest extends TestCase { * @param clients Nodes to reconnect. * @throws Exception If failed. */ - protected static void reconnectClients(IgniteLogger log, List<Ignite> clients) throws Exception { + protected static void reconnectClients(IgniteLogger log, List<Ignite> clients, @Nullable Runnable disconnectedC) throws Exception { List<Ignite> nodes = G.allGrids(); assertFalse("There are no nodes", nodes.isEmpty()); if (nodes.get(0).configuration().getDiscoverySpi().getClass().getName().equals(ZK_DISCOVERY)) - ZookeeperDiscoverySpiBasicTest.reconnectClientNodes(log, clients, null, false); + ZookeeperDiscoverySpiBasicTest.reconnectClientNodes(log, clients, disconnectedC, false); else fail("Reconnect is not supported"); }
