zk
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9d773539 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9d773539 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9d773539 Branch: refs/heads/ignite-zk Commit: 9d773539f99d70995d81bc15726c5be25b2bb006 Parents: 66a4c35 Author: sboikov <sboi...@gridgain.com> Authored: Fri Dec 1 11:09:57 2017 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Fri Dec 1 11:18:22 2017 +0300 ---------------------------------------------------------------------- .../spi/discovery/zk/ZookeeperDiscoverySpi.java | 6 +++ .../zk/internal/ZookeeperDiscoveryImpl.java | 48 +++++++++++++------- .../GridCacheNodeFailureAbstractTest.java | 5 +- ...titionedExplicitLockNodeFailureSelfTest.java | 3 +- .../testframework/junits/GridAbstractTest.java | 2 +- 5 files changed, 44 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9d773539/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java index 79e7ba1..6029e83 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java @@ -301,6 +301,12 @@ public class ZookeeperDiscoverySpi extends IgniteSpiAdapter implements Discovery } /** {@inheritDoc} */ + @Override protected void onContextDestroyed0() { + if (impl != null) + impl.onStop(); + } + + /** {@inheritDoc} */ @Override public void spiStop() throws IgniteSpiException { if (impl != null) { try { http://git-wip-us.apache.org/repos/asf/ignite/blob/9d773539/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 5dc90ef..35fff0a 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 @@ -882,8 +882,8 @@ public class ZookeeperDiscoveryImpl { String joinDataPath = zkPaths.joiningNodeDataPath(locNode.id(), path); - if (log.isInfoEnabled()) - log.info("Delete join data: " + joinDataPath); + if (log.isDebugEnabled()) + log.debug("Delete join data: " + joinDataPath); state.zkClient.deleteIfExistsAsync(joinDataPath); @@ -917,6 +917,8 @@ public class ZookeeperDiscoveryImpl { * @throws Exception If failed. */ private void cleanupPreviousClusterData() throws Exception { + long start = System.currentTimeMillis(); + // TODO ZK: use multi, better batching. state.zkClient.setData(zkPaths.evtsPath, null, -1); @@ -937,6 +939,13 @@ public class ZookeeperDiscoveryImpl { state.zkClient.deleteAll(zkPaths.customEvtsAcksDir, state.zkClient.getChildren(zkPaths.customEvtsAcksDir), -1); + + long time = System.currentTimeMillis() - start; + + if (time > 0) { + if (log.isInfoEnabled()) + log.info("Previous cluster data cleanup time: " + time); + } } /** @@ -1175,8 +1184,8 @@ public class ZookeeperDiscoveryImpl { else if (updateNodeInfo) { assert state.locNodeZkPath != null; - if (log.isInfoEnabled()) - log.info("Update processed events: " + state.locNodeInfo.lastProcEvt); + if (log.isDebugEnabled()) + log.debug("Update processed events: " + state.locNodeInfo.lastProcEvt); state.zkClient.setData(state.locNodeZkPath, marshal(state.locNodeInfo), -1); } @@ -1500,22 +1509,12 @@ public class ZookeeperDiscoveryImpl { } /** - * @throws InterruptedException If interrupted. - */ - public void stop() throws InterruptedException { - stop0(new IgniteSpiException("Node stopped")); - } - - /** - * @param e Error. - * @throws InterruptedException If interrupted. + * */ - private void stop0(Throwable e) throws InterruptedException { + public void onStop() { if (!stop.compareAndSet(false, true)) return; - log.info("Stop ZookeeperDiscovery [nodeId=" + locNode.id() + ", err=" + e + ']'); - synchronized (stateMux) { connState = ConnectionState.STOPPED; } @@ -1524,13 +1523,28 @@ public class ZookeeperDiscoveryImpl { if (zkClient != null) zkClient.onCloseStart(); + } + /** + * @throws InterruptedException If interrupted. + */ + public void stop() throws InterruptedException { + stop0(new IgniteSpiException("Node stopped")); + } + + /** + * @param e Error. + * @throws InterruptedException If interrupted. + */ + private void stop0(Throwable e) throws InterruptedException { busyLock.block(); busyLock.unblock(); joinFut.onDone(e); + ZookeeperClient zkClient = state.zkClient; + if (zkClient != null) zkClient.close(); } @@ -1552,6 +1566,8 @@ public class ZookeeperDiscoveryImpl { U.error(log, "Fatal error in ZookeeperDiscovery.", err); try { + onStop(); + stop0(err); } catch (InterruptedException e) { http://git-wip-us.apache.org/repos/asf/ignite/blob/9d773539/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java index 3834df9..5dea5d9 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java @@ -45,6 +45,7 @@ import org.apache.ignite.transactions.TransactionIsolation; import static org.apache.ignite.IgniteState.STOPPED; import static org.apache.ignite.IgniteSystemProperties.IGNITE_TX_SALVAGE_TIMEOUT; import static org.apache.ignite.IgniteSystemProperties.getInteger; +import static org.apache.ignite.events.EventType.EVT_NODE_FAILED; import static org.apache.ignite.events.EventType.EVT_NODE_LEFT; import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC; import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC; @@ -188,7 +189,7 @@ public abstract class GridCacheNodeFailureAbstractTest extends GridCommonAbstrac return true; } - }, EVT_NODE_LEFT); + }, EVT_NODE_LEFT, EVT_NODE_FAILED); stopGrid(idx); @@ -268,7 +269,7 @@ public abstract class GridCacheNodeFailureAbstractTest extends GridCommonAbstrac return true; } - }, EVT_NODE_LEFT); + }, EVT_NODE_LEFT, EVT_NODE_FAILED); stopGrid(idx); http://git-wip-us.apache.org/repos/asf/ignite/blob/9d773539/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java index 3c57957..96fb8f6 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedExplicitLockNodeFailureSelfTest.java @@ -37,6 +37,7 @@ import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL; import static org.apache.ignite.cache.CacheMode.PARTITIONED; +import static org.apache.ignite.events.EventType.EVT_NODE_FAILED; import static org.apache.ignite.events.EventType.EVT_NODE_LEFT; /** @@ -125,7 +126,7 @@ public class GridCachePartitionedExplicitLockNodeFailureSelfTest extends GridCom return true; } - }, EVT_NODE_LEFT)); + }, EVT_NODE_LEFT, EVT_NODE_FAILED)); } stopGrid(idx); http://git-wip-us.apache.org/repos/asf/ignite/blob/9d773539/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 299ad8b..8990570 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 @@ -197,7 +197,7 @@ public abstract class GridAbstractTest extends TestCase { static { // TODO ZK System.setProperty("TEST_ZK", "true"); - System.setProperty(ZOOKEEPER_CLIENT_CNXN_SOCKET, ZkTestClientCnxnSocketNIO.class.getName()); + //System.setProperty(ZOOKEEPER_CLIENT_CNXN_SOCKET, ZkTestClientCnxnSocketNIO.class.getName()); System.setProperty(IgniteSystemProperties.IGNITE_ATOMIC_CACHE_DELETE_HISTORY_SIZE, "10000"); System.setProperty(IgniteSystemProperties.IGNITE_UPDATE_NOTIFIER, "false");