You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2018/08/03 09:58:53 UTC
[40/50] [abbrv] ignite git commit: IGNITE-9111 Do not wait for
deactivation.
IGNITE-9111 Do not wait for deactivation.
Signed-off-by: agura <ag...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8811a143
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8811a143
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8811a143
Branch: refs/heads/ignite-8446
Commit: 8811a143b525804905fd661b2c66d508b70e4697
Parents: d632eb6
Author: Pavel Kovalenko <jo...@gmail.com>
Authored: Thu Aug 2 15:51:17 2018 +0300
Committer: agura <ag...@apache.org>
Committed: Thu Aug 2 15:51:46 2018 +0300
----------------------------------------------------------------------
.../cluster/DiscoveryDataClusterState.java | 7 ---
.../cluster/GridClusterStateProcessor.java | 2 +-
.../IgniteClusterActivateDeactivateTest.java | 48 ++++++++++++++++++++
3 files changed, 49 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/8811a143/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/DiscoveryDataClusterState.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/DiscoveryDataClusterState.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/DiscoveryDataClusterState.java
index b6029a3..65d6088 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/DiscoveryDataClusterState.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/DiscoveryDataClusterState.java
@@ -173,13 +173,6 @@ public class DiscoveryDataClusterState implements Serializable {
}
/**
- * @return {@code True} if cluster active state change is in progress, {@code false} otherwise.
- */
- public boolean activeStateChanging() {
- return transition() && (prevState == null || (prevState.active != active));
- }
-
- /**
* @return State change exchange version.
*/
public AffinityTopologyVersion transitionTopologyVersion() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/8811a143/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
index da0bbf6..8d2620f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cluster/GridClusterStateProcessor.java
@@ -179,7 +179,7 @@ public class GridClusterStateProcessor extends GridProcessorAdapter implements I
assert globalState != null;
- if (globalState.transition() && globalState.activeStateChanging()) {
+ if (globalState.transition() && globalState.active()) {
Boolean transitionRes = globalState.transitionResult();
if (transitionRes != null)
http://git-wip-us.apache.org/repos/asf/ignite/blob/8811a143/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
index 3b39bfb..4ff97ba 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
@@ -42,6 +42,7 @@ import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi;
import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsFullMessage;
import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsSingleMessage;
+import org.apache.ignite.internal.processors.cluster.DiscoveryDataClusterState;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.internal.util.typedef.internal.CU;
@@ -53,6 +54,7 @@ import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.junit.Assert;
import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
@@ -1176,6 +1178,52 @@ public class IgniteClusterActivateDeactivateTest extends GridCommonAbstractTest
}
/**
+ * @throws Exception If failed.
+ */
+ public void testClusterStateNotWaitForDeactivation() throws Exception {
+ testSpi = true;
+
+ final int nodes = 2;
+
+ IgniteEx crd = (IgniteEx) startGrids(nodes);
+
+ crd.cluster().active(true);
+
+ AffinityTopologyVersion curTopVer = crd.context().discovery().topologyVersionEx();
+
+ AffinityTopologyVersion deactivationTopVer = new AffinityTopologyVersion(
+ curTopVer.topologyVersion(),
+ curTopVer.minorTopologyVersion() + 1
+ );
+
+ for (int gridIdx = 0; gridIdx < nodes; gridIdx++) {
+ TestRecordingCommunicationSpi spi = TestRecordingCommunicationSpi.spi(grid(gridIdx));
+
+ blockExchangeSingleMessage(spi, deactivationTopVer);
+ }
+
+ IgniteInternalFuture deactivationFut = GridTestUtils.runAsync(() -> crd.cluster().active(false));
+
+ // Wait for deactivation start.
+ GridTestUtils.waitForCondition(() -> {
+ DiscoveryDataClusterState clusterState = crd.context().state().clusterState();
+
+ return clusterState.transition() && !clusterState.active();
+ }, getTestTimeout());
+
+ // Check that deactivation transition wait is not happened.
+ Assert.assertFalse(crd.context().state().publicApiActiveState(true));
+
+ for (int gridIdx = 0; gridIdx < nodes; gridIdx++) {
+ TestRecordingCommunicationSpi spi = TestRecordingCommunicationSpi.spi(grid(gridIdx));
+
+ spi.stopBlock();
+ }
+
+ deactivationFut.get();
+ }
+
+ /**
* @param exp If {@code true} there should be recorded messages.
*/
private void checkRecordedMessages(boolean exp) {