Repository: ignite Updated Branches: refs/heads/master 89c775737 -> 19cbf8058
IGNITE-8422 Tests fix for Zookeeper discovery split brain detection shouldn't consider client nodes - Fixes #3975. Signed-off-by: dpavlov <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/19cbf805 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/19cbf805 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/19cbf805 Branch: refs/heads/master Commit: 19cbf8058b48a1f8fec60f7ceac70229e7c5391a Parents: 89c7757 Author: Pavel Kovalenko <[email protected]> Authored: Mon May 14 13:14:52 2018 +0300 Committer: dpavlov <[email protected]> Committed: Mon May 14 13:14:52 2018 +0300 ---------------------------------------------------------------------- .../zk/internal/ZookeeperDiscoverySpiTest.java | 33 ++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/19cbf805/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java ---------------------------------------------------------------------- diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java index 03b874d..09db104 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java @@ -127,6 +127,7 @@ import org.apache.zookeeper.ZKUtil; import org.apache.zookeeper.ZkTestClientCnxnSocketNIO; import org.apache.zookeeper.ZooKeeper; import org.jetbrains.annotations.Nullable; +import org.junit.Assert; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.SECONDS; @@ -3589,6 +3590,10 @@ public class ZookeeperDiscoverySpiTest extends GridCommonAbstractTest { startGridsMultiThreaded(5, 3); + client = false; + + awaitPartitionMapExchange(); + List<ClusterNode> all = G.allGrids().stream() .map(g -> g.cluster().localNode()) .collect(Collectors.toList());; @@ -3600,6 +3605,8 @@ public class ZookeeperDiscoverySpiTest extends GridCommonAbstractTest { ClusterNode lastClient = startGrid(8).cluster().localNode(); + awaitPartitionMapExchange(); + // Make last client connected to other nodes. for (ClusterNode node : all) { if (node.id().equals(lastClient.id())) @@ -3633,15 +3640,21 @@ public class ZookeeperDiscoverySpiTest extends GridCommonAbstractTest { .map(g -> g.cluster().localNode()) .collect(Collectors.toList()); + Assert.assertEquals(5, srvNodes.size()); + client = true; startGridsMultiThreaded(5, 3); client = false; + awaitPartitionMapExchange(); + ConnectionsFailureMatrix matrix = new ConnectionsFailureMatrix(); - matrix.addAll(G.allGrids().stream().map(g -> g.cluster().localNode()).collect(Collectors.toList())); + List<ClusterNode> allNodes = G.allGrids().stream().map(g -> g.cluster().localNode()).collect(Collectors.toList()); + + matrix.addAll(allNodes); // Remove 2 connections between server nodes. matrix.removeConnection(srvNodes.get(0), srvNodes.get(1)); @@ -3674,6 +3687,8 @@ public class ZookeeperDiscoverySpiTest extends GridCommonAbstractTest { .map(g -> g.cluster().localNode()) .collect(Collectors.toList()); + Assert.assertEquals(6, srvNodes.size()); + List<ClusterNode> srvPart1 = srvNodes.subList(0, 3); List<ClusterNode> srvPart2 = srvNodes.subList(3, srvNodes.size()); @@ -3683,11 +3698,15 @@ public class ZookeeperDiscoverySpiTest extends GridCommonAbstractTest { client = false; + awaitPartitionMapExchange(); + List<ClusterNode> clientNodes = G.allGrids().stream() .map(g -> g.cluster().localNode()) .filter(ClusterNode::isClient) .collect(Collectors.toList()); + Assert.assertEquals(5, clientNodes.size()); + List<ClusterNode> clientPart1 = clientNodes.subList(0, 2); List<ClusterNode> clientPart2 = clientNodes.subList(2, 4); @@ -3793,17 +3812,24 @@ public class ZookeeperDiscoverySpiTest extends GridCommonAbstractTest { private static volatile boolean failure; /** Connections failure matrix. */ - private static ConnectionsFailureMatrix matrix; + private static volatile ConnectionsFailureMatrix matrix; /** * Start failing connections according to given matrix {@code with}. * @param with Failure matrix. */ - public static void fail(ConnectionsFailureMatrix with) { + static void fail(ConnectionsFailureMatrix with) { matrix = with; failure = true; } + /** + * Resets failure matrix. + */ + static void unfail() { + failure = false; + } + /** {@inheritDoc} */ @Override public IgniteFuture<BitSet> checkConnection(List<ClusterNode> nodes) { // Creates connections statuses according to failure matrix. @@ -4264,6 +4290,7 @@ public class ZookeeperDiscoverySpiTest extends GridCommonAbstractTest { err = false; failCommSpi = false; + PeerToPeerCommunicationFailureSpi.unfail(); evts.clear();
