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;