Repository: ignite
Updated Branches:
  refs/heads/ignite-zk 4c63e4238 -> 276152a99


zk


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/276152a9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/276152a9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/276152a9

Branch: refs/heads/ignite-zk
Commit: 276152a9981a2cc0850230e96c1935e2c5841f16
Parents: 4c63e42
Author: sboikov <sboi...@gridgain.com>
Authored: Fri Dec 29 13:12:23 2017 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Fri Dec 29 13:12:23 2017 +0300

----------------------------------------------------------------------
 .../zk/internal/ZookeeperDiscoveryImpl.java     | 12 ++++-----
 .../zk/internal/ZookeeperDiscoverySpiTest.java  | 26 +++++++++++++++++---
 2 files changed, 29 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/276152a9/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
index 8f717c4..ffade09 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
@@ -1485,6 +1485,12 @@ public class ZookeeperDiscoveryImpl {
             handleProcessedEvents("crd");
         }
         else {
+            String locAlivePath = 
rtState.locNodeZkPath.substring(rtState.locNodeZkPath.lastIndexOf('/') + 1);
+
+            deleteJoiningNodeData(locNode.id(),
+                ZkIgnitePaths.aliveNodePrefixId(locAlivePath),
+                rtState.joinDataPartCnt);
+
             DiscoverySpiNodeAuthenticator nodeAuth = spi.getAuthenticator();
 
             if (nodeAuth != null) {
@@ -2110,12 +2116,6 @@ public class ZookeeperDiscoveryImpl {
 
         rtState.top.addNode(locNode);
 
-        String locAlivePath = 
rtState.locNodeZkPath.substring(rtState.locNodeZkPath.lastIndexOf('/') + 1);
-
-        deleteJoiningNodeData(locNode.id(),
-            ZkIgnitePaths.aliveNodePrefixId(locAlivePath),
-            rtState.joinDataPartCnt);
-
         final List<ClusterNode> topSnapshot = 
Collections.singletonList((ClusterNode)locNode);
 
         lsnr.onDiscovery(EventType.EVT_NODE_JOINED,

http://git-wip-us.apache.org/repos/asf/ignite/blob/276152a9/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java
 
b/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java
index e671f98..314e3ab 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTest.java
@@ -105,6 +105,7 @@ import 
org.apache.ignite.spi.discovery.DiscoverySpiNodeAuthenticator;
 import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.apache.zookeeper.KeeperException;
 import org.apache.zookeeper.ZKUtil;
 import org.apache.zookeeper.ZkTestClientCnxnSocketNIO;
 import org.apache.zookeeper.ZooKeeper;
@@ -1901,7 +1902,7 @@ public class ZookeeperDiscoverySpiTest extends 
GridCommonAbstractTest {
         final String aliveDir = basePath + ZkIgnitePaths.ALIVE_NODES_DIR + "/";
 
         try {
-            List<String> znodes = ZKUtil.listSubTreeBFS(zkClient.zk(), 
IGNITE_ZK_ROOT);
+            List<String> znodes = listSubTree(zkClient.zk(), IGNITE_ZK_ROOT);
 
             boolean foundAlive = false;
 
@@ -1915,10 +1916,10 @@ public class ZookeeperDiscoverySpiTest extends 
GridCommonAbstractTest {
 
             assertTrue(foundAlive); // Sanity check to make sure we check 
correct directory.
 
-            assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() {
+            assertTrue("Failed to wait for unused znodes cleanup", 
GridTestUtils.waitForCondition(new GridAbsPredicate() {
                 @Override public boolean apply() {
                     try {
-                        List<String> znodes = 
ZKUtil.listSubTreeBFS(zkClient.zk(), IGNITE_ZK_ROOT);
+                        List<String> znodes = listSubTree(zkClient.zk(), 
IGNITE_ZK_ROOT);
 
                         for (String znode : znodes) {
                             if (znode.startsWith(aliveDir) || znode.length() < 
basePath.length())
@@ -3798,6 +3799,25 @@ public class ZookeeperDiscoverySpiTest extends 
GridCommonAbstractTest {
     }
 
     /**
+     * @param zk ZooKeeper client.
+     * @param root Root path.
+     * @return All children znodes for given path.
+     * @throws Exception If failed/
+     */
+    private List<String> listSubTree(ZooKeeper zk, String root) throws 
Exception {
+        for (int i = 0; i < 30; i++) {
+            try {
+                return ZKUtil.listSubTreeBFS(zk, root);
+            }
+            catch (KeeperException.NoNodeException e) {
+                info("NoNodeException when get znodes, will retry: " + e);
+            }
+        }
+
+        throw new Exception("Failed to get znodes: " + root);
+    }
+
+    /**
      * @param log Logger.
      * @param latch Latch.
      * @throws Exception If failed.

Reply via email to