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/10/26 14:38:55 UTC
ignite git commit: ignite-5935 tests
Repository: ignite
Updated Branches:
refs/heads/ignite-5935 [created] 1c2fded6e
ignite-5935 tests
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1c2fded6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1c2fded6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1c2fded6
Branch: refs/heads/ignite-5935
Commit: 1c2fded6e0a3cad93ebe04b2fa3b0d81c7f2ffca
Parents: 987a57e
Author: sboikov <sb...@gridgain.com>
Authored: Thu Oct 26 16:45:53 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Oct 26 17:09:20 2017 +0300
----------------------------------------------------------------------
.../near/GridNearTxFinishAndAckFuture.java | 15 ++++++
.../cache/mvcc/CacheCoordinatorsProcessor.java | 7 +++
.../cache/mvcc/CacheMvccTransactionsTest.java | 53 ++++++++++++++++++++
3 files changed, 75 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c2fded6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
index 36efe2f..140f57d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishAndAckFuture.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.processors.cache.distributed.near;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteLogger;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.processors.cache.mvcc.MvccQueryTracker;
import org.apache.ignite.internal.processors.cache.mvcc.TxMvccInfo;
@@ -41,6 +42,11 @@ public class GridNearTxFinishAndAckFuture extends GridFutureAdapter<IgniteIntern
}
/** {@inheritDoc} */
+ @Override public IgniteLogger logger() {
+ return finishFut.context().logger(GridNearTxFinishAndAckFuture.class);
+ }
+
+ /** {@inheritDoc} */
@Override public boolean commit() {
return finishFut.commit();
}
@@ -52,6 +58,15 @@ public class GridNearTxFinishAndAckFuture extends GridFutureAdapter<IgniteIntern
finishFut.listen(new IgniteInClosure<GridNearTxFinishFuture>() {
@Override public void apply(final GridNearTxFinishFuture fut) {
+ try {
+ fut.get();
+ }
+ catch (IgniteCheckedException e) {
+ onDone(e);
+
+ return;
+ }
+
GridNearTxLocal tx = fut.tx();
IgniteInternalFuture<Void> ackFut = null;
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c2fded6/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java
index c88ca1c..31ca21d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/CacheCoordinatorsProcessor.java
@@ -147,6 +147,11 @@ public class CacheCoordinatorsProcessor extends GridProcessorAdapter {
super(ctx);
}
+ /** {@inheritDoc} */
+ @Override public void onKernalStop(boolean cancel) {
+ super.onKernalStop(cancel);
+ }
+
/**
* @param crdVer Mvcc coordinator version.
* @param cntr Counter.
@@ -1342,6 +1347,7 @@ public class CacheCoordinatorsProcessor extends GridProcessorAdapter {
return "CacheCoordinatorDiscoveryListener[]";
}
}
+
/**
*
*/
@@ -1396,6 +1402,7 @@ public class CacheCoordinatorsProcessor extends GridProcessorAdapter {
return "CoordinatorMessageListener[]";
}
}
+
/**
*
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c2fded6/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java
index 6309523..e8fc281 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/mvcc/CacheMvccTransactionsTest.java
@@ -350,6 +350,59 @@ public class CacheMvccTransactionsTest extends CacheMvccAbstractTest {
}
/**
+ * @throws Exception If failed.
+ */
+ public void testNearTxNodeFailureSimple() throws Exception {
+ testSpi = true;
+
+ final int SRVS = 3;
+
+ startGridsMultiThreaded(SRVS);
+
+ client = true;
+
+ Ignite client = startGrid(SRVS);
+
+ CacheConfiguration<Object, Object> ccfg = cacheConfiguration(PARTITIONED,
+ FULL_SYNC, 2, DFLT_PARTITION_COUNT);
+
+ final IgniteCache cache = client.createCache(ccfg);
+
+ TestRecordingCommunicationSpi spi = TestRecordingCommunicationSpi.spi(client);
+
+ spi.blockMessages(new IgniteBiPredicate<ClusterNode, Message>() {
+ @Override public boolean apply(ClusterNode node, Message msg) {
+ if (msg instanceof GridNearTxFinishRequest || msg instanceof CoordinatorAckRequestTx) {
+ info("Block message [node=" + node.id() + ", msg=" + msg + ']');
+
+ return true;
+ }
+
+ return false;
+ }
+ });
+
+ IgniteInternalFuture fut = GridTestUtils.runAsync(new Callable() {
+ @Override public Object call() throws Exception {
+ try {
+ cache.put(primaryKey(jcache(1)), 1);
+ }
+ catch (Exception e) {
+ info("Ignore error: " + e);
+ }
+
+ return null;
+ }
+ });
+
+ spi.waitForBlocked();
+
+ stopGrid(SRVS);
+
+ fut.get();
+ }
+
+ /**
* @param tx If {@code true} tests reads inside transaction.
* @throws Exception If failed.
*/