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 2015/12/14 14:47:41 UTC
[3/5] ignite git commit: ignite-1.5 Fixed race in
GridSessionCheckpointAbstractSelfTest.checkCheckpoints.
ignite-1.5 Fixed race in GridSessionCheckpointAbstractSelfTest.checkCheckpoints.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d14dc936
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d14dc936
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d14dc936
Branch: refs/heads/ignite-1537
Commit: d14dc9368b2ab6654fb405c0be8d16f30974fe0c
Parents: a50e963
Author: sboikov <sb...@gridgain.com>
Authored: Mon Dec 14 16:33:27 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon Dec 14 16:33:27 2015 +0300
----------------------------------------------------------------------
.../GridSessionCheckpointAbstractSelfTest.java | 32 +++++++++++++-------
1 file changed, 21 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d14dc936/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointAbstractSelfTest.java
index 0c8c890..06cbf1c 100644
--- a/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/session/GridSessionCheckpointAbstractSelfTest.java
@@ -22,6 +22,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteException;
import org.apache.ignite.compute.ComputeJobAdapter;
@@ -53,11 +55,21 @@ public abstract class GridSessionCheckpointAbstractSelfTest extends GridCommonAb
private static final int SPLIT_COUNT = 5;
/** */
+ private static CountDownLatch taskLatch;
+
+ /** */
protected GridSessionCheckpointAbstractSelfTest() {
super(/*start grid*/false);
}
- /**
+ /** {@inheritDoc} */
+ @Override protected void beforeTest() throws Exception {
+ taskLatch = null;
+
+ super.beforeTest();
+ }
+
+ /**
* @param sesKey Session key.
* @param globalKey Global key.
* @param globalState Global state.
@@ -123,6 +135,8 @@ public abstract class GridSessionCheckpointAbstractSelfTest extends GridCommonAb
Ignite ignite = G.start(cfg);
try {
+ taskLatch = new CountDownLatch(1);
+
ignite.compute().localDeployTask(GridCheckpointTestTask.class, GridCheckpointTestTask.class.getClassLoader());
ComputeTaskFuture<?> fut = executeAsync(ignite.compute(), "GridCheckpointTestTask", null);
@@ -131,7 +145,9 @@ public abstract class GridSessionCheckpointAbstractSelfTest extends GridCommonAb
fut.getTaskSession().saveCheckpoint("future:global:key", "future:global:testval",
ComputeTaskSessionScope.GLOBAL_SCOPE, 0);
- int res = (Integer) fut.get();
+ taskLatch.countDown();
+
+ int res = (Integer)fut.get();
assert res == SPLIT_COUNT : "Invalid result: " + res;
@@ -198,9 +214,8 @@ public abstract class GridSessionCheckpointAbstractSelfTest extends GridCommonAb
@Override public Object reduce(List<ComputeJobResult> results) {
int res = 0;
- for (ComputeJobResult result : results) {
+ for (ComputeJobResult result : results)
res += (Integer)result.getData();
- }
for (int i = 0; i < SPLIT_COUNT; i++) {
ses.saveCheckpoint("reduce:session:key:" + i, "reduce:session:testval:" + i);
@@ -208,15 +223,10 @@ public abstract class GridSessionCheckpointAbstractSelfTest extends GridCommonAb
ComputeTaskSessionScope.GLOBAL_SCOPE, 0);
}
- // Sleep to let task future store a session attribute.
try {
- Thread.sleep(200);
- }
- catch (InterruptedException e) {
- throw new IgniteException("Got interrupted during reducing.", e);
- }
+ if (taskLatch != null)
+ taskLatch.await(30, TimeUnit.SECONDS);
- try {
// Check task and job states.
for (int i = 0; i < SPLIT_COUNT; i++) {
// Check task map state.