You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/11/15 10:12:41 UTC
[4/5] ignite git commit: zk
zk
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/aa0ca90c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/aa0ca90c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/aa0ca90c
Branch: refs/heads/ignite-zk
Commit: aa0ca90cbaec809715190c1036654a6aad0fb0a3
Parents: ac07cbe
Author: sboikov <sb...@gridgain.com>
Authored: Wed Nov 15 12:50:14 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed Nov 15 12:50:14 2017 +0300
----------------------------------------------------------------------
.../spi/discovery/zk/ZookeeperDiscoverySpi.java | 14 ++++++++
.../zk/ZookeeperDiscoverySpiBasicTest.java | 34 ++++++++++++++++++++
2 files changed, 48 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/aa0ca90c/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
index 1659dcf..cee9e65 100644
--- a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
+++ b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
@@ -20,6 +20,7 @@ package org.apache.ignite.spi.discovery.zk;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -425,6 +426,19 @@ public class ZookeeperDiscoverySpi extends IgniteSpiAdapter implements Discovery
if (log != null)
log.info("Curator event, connection: " + newState);
+
+ if (newState == ConnectionState.LOST) {
+ U.warn(log, "Connection was lost, local node SEGMENTED");
+
+ zkCurator.close();
+
+ lsnr.onDiscovery(EventType.EVT_NODE_SEGMENTED,
+ 0,
+ locNode,
+ Collections.<ClusterNode>emptyList(),
+ Collections.<Long, Collection<ClusterNode>>emptyMap(),
+ null);
+ }
}
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/aa0ca90c/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiBasicTest.java
----------------------------------------------------------------------
diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiBasicTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiBasicTest.java
index 4cd86db..bc577d2 100644
--- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiBasicTest.java
+++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiBasicTest.java
@@ -24,6 +24,8 @@ import java.util.TreeMap;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.curator.test.TestingCluster;
import org.apache.ignite.Ignite;
@@ -262,6 +264,38 @@ public class ZookeeperDiscoverySpiBasicTest extends GridCommonAbstractTest {
/**
* @throws Exception If failed.
*/
+ public void testSegmentation1() throws Exception {
+ sesTimeout = 2000;
+ testSockNio = true;
+
+ Ignite node0 = startGrid(0);
+
+ final CountDownLatch l = new CountDownLatch(1);
+
+ node0.events().localListen(new IgnitePredicate<Event>() {
+ @Override public boolean apply(Event event) {
+ l.countDown();
+
+ return false;
+ }
+ }, EventType.EVT_NODE_SEGMENTED);
+
+ ZkTestClientCnxnSocketNIO c0 = ZkTestClientCnxnSocketNIO.forNode(node0);
+
+ c0.closeSocket(true);
+
+ Thread.sleep(4_000);
+
+ info("Allow connect");
+
+ c0.allowConnect();
+
+ assertTrue(l.await(10, TimeUnit.SECONDS));
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
public void testConnectionRestore1() throws Exception {
testSockNio = true;