You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2015/09/03 03:03:55 UTC

[46/50] [abbrv] ignite git commit: IGNITE-264 - Fixing tests.

IGNITE-264 - Fixing tests.


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

Branch: refs/heads/ignite-264
Commit: 0d6927c2427a8221773d862f93cbf86addfbaeda
Parents: f88defd
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Sep 1 17:45:04 2015 -0700
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Sep 1 17:45:04 2015 -0700

----------------------------------------------------------------------
 .../processors/cache/GridCacheAdapter.java      |   6 +
 .../near/GridNearTxFinishFuture.java            |  67 ++++++++--
 .../cache/distributed/near/GridNearTxLocal.java |   8 +-
 .../dht/GridCacheTxNodeFailureSelfTest.java     | 133 ++++++++++++++-----
 .../dht/GridNearCacheTxNodeFailureSelfTest.java |  31 +++++
 .../near/IgniteCacheNearOnlyTxTest.java         |  14 +-
 .../IgniteCacheFailoverTestSuite.java           |   5 +
 7 files changed, 216 insertions(+), 48 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 68749b9..857d0bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -4230,6 +4230,9 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
                                     try {
                                         return tFut.get();
                                     }
+                                    catch (IgniteTxRollbackCheckedException e) {
+                                        throw e;
+                                    }
                                     catch (IgniteCheckedException e1) {
                                         tx0.rollbackAsync();
 
@@ -4250,6 +4253,9 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
                     try {
                         return tFut.get();
                     }
+                    catch (IgniteTxRollbackCheckedException e) {
+                        throw e;
+                    }
                     catch (IgniteCheckedException e1) {
                         tx0.rollbackAsync();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index d437909..9b9fe86 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -18,6 +18,8 @@
 package org.apache.ignite.internal.processors.cache.distributed.near;
 
 import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicReference;
@@ -377,7 +379,10 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
     private void checkBackup() {
         assert mappings.size() <= 1;
 
-        for (UUID nodeId : mappings.keySet()) {
+        for (Map.Entry<UUID, GridDistributedTxMapping> entry : mappings.entrySet()) {
+            UUID nodeId = entry.getKey();
+            GridDistributedTxMapping mapping = entry.getValue();
+
             Collection<UUID> backups = tx.transactionNodes().get(nodeId);
 
             if (!F.isEmpty(backups)) {
@@ -391,16 +396,19 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
                 if (backup == null)
                     return;
 
-                MiniFuture mini = new MiniFuture(backup);
+                MiniFuture mini = new MiniFuture(backup, mapping);
 
                 add(mini);
 
                 if (backup.isLocal()) {
-                    if (cctx.tm().txHandler().checkDhtRemoteTxCommitted(tx.xidVersion()))
+                    if (cctx.tm().txHandler().checkDhtRemoteTxCommitted(tx.xidVersion())) {
+                        readyNearMappingFromBackup(mapping);
+
                         mini.onDone(tx);
+                    }
                     else
                         mini.onDone(new IgniteTxRollbackCheckedException("Failed to commit transaction " +
-                        "(transaction has been rolled back on backup node): " + tx.xidVersion()));
+                            "(transaction has been rolled back on backup node): " + tx.xidVersion()));
                 }
                 else {
                     GridDhtTxFinishRequest finishReq = new GridDhtTxFinishRequest(
@@ -440,6 +448,8 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
                     }
                 }
             }
+            else
+                readyNearMappingFromBackup(mapping);
         }
     }
 
@@ -447,14 +457,22 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
      *
      */
     private boolean needFinishOnePhase() {
+        if (F.isEmpty(tx.mappings()))
+            return false;
+
+        boolean finish = false;
+
         for (Integer cacheId : tx.activeCacheIds()) {
             GridCacheContext<K, V> cacheCtx = cctx.cacheContext(cacheId);
 
-            if (cacheCtx.isNear())
-                return true;
+            if (cacheCtx.isNear()) {
+                finish = true;
+
+                break;
+            }
         }
 
-        return false;
+        return finish;
     }
 
     /**
@@ -475,6 +493,20 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
     }
 
     /**
+     * @param mapping Mapping to finish.
+     */
+    private void readyNearMappingFromBackup(GridDistributedTxMapping mapping) {
+        if (mapping.near()) {
+            GridCacheVersion xidVer = tx.xidVersion();
+
+            mapping.dhtVersion(xidVer, xidVer);
+
+            tx.readyNearLocks(mapping, Collections.<GridCacheVersion>emptyList(), Collections.<GridCacheVersion>emptyList(),
+                Collections.<GridCacheVersion>emptyList());
+        }
+    }
+
+    /**
      * @param mappings Mappings.
      */
     private void finish(Iterable<GridDistributedTxMapping> mappings) {
@@ -599,9 +631,11 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
 
         /**
          * @param backup Backup to check.
+         * @param m Mapping associated with the backup.
          */
-        MiniFuture(ClusterNode backup) {
+        MiniFuture(ClusterNode backup, GridDistributedTxMapping m) {
             this.backup = backup;
+            this.m = m;
         }
 
         /**
@@ -617,7 +651,7 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
         public ClusterNode node() {
             assert m != null || backup != null;
 
-            return m != null ? m.node() : backup;
+            return backup != null ? backup : m.node();
         }
 
         /**
@@ -645,8 +679,14 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
             if (log.isDebugEnabled())
                 log.debug("Remote node left grid while sending or waiting for reply (will fail): " + this);
 
-            // Complete future with tx.
-            onDone(tx);
+            if (backup != null) {
+                readyNearMappingFromBackup(m);
+
+                onDone(e);
+            }
+            else
+                // Complete future with tx.
+                onDone(tx);
         }
 
         /**
@@ -667,9 +707,10 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
         void onResult(GridDhtTxFinishResponse res) {
             assert backup != null;
 
-            if (res.checkCommittedError() != null) {
+            readyNearMappingFromBackup(m);
+
+            if (res.checkCommittedError() != null)
                 onDone(res.checkCommittedError());
-            }
             else
                 onDone(tx);
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
index dd115215..a4e06c3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
@@ -519,9 +519,15 @@ public class GridNearTxLocal extends GridDhtTxLocalAdapter {
 
                 GridDistributedTxMapping m = mappings.get(n.id());
 
-                if (m == null)
+                if (m == null) {
                     m = F.addIfAbsent(mappings, n.id(), new GridDistributedTxMapping(n));
 
+                    m.near(map.near());
+
+                    if (map.explicitLock())
+                        m.markExplicitLock();
+                }
+
                 assert m != null;
 
                 for (IgniteTxEntry entry : map.entries())

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
index bca3b6f..1135c40 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridCacheTxNodeFailureSelfTest.java
@@ -17,33 +17,47 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.dht;
 
-import org.apache.ignite.*;
-import org.apache.ignite.cache.*;
-import org.apache.ignite.cache.affinity.*;
-import org.apache.ignite.cluster.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.managers.communication.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.plugin.extensions.communication.*;
-import org.apache.ignite.spi.*;
-import org.apache.ignite.spi.communication.tcp.*;
-import org.apache.ignite.testframework.*;
-import org.apache.ignite.testframework.junits.common.*;
-import org.apache.ignite.transactions.*;
-
-import javax.cache.*;
-import java.util.*;
-import java.util.concurrent.*;
-
-import static org.apache.ignite.transactions.TransactionConcurrency.*;
-import static org.apache.ignite.transactions.TransactionIsolation.*;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.cache.affinity.Affinity;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import org.apache.ignite.internal.IgniteKernal;
+import org.apache.ignite.internal.managers.communication.GridIoMessage;
+import org.apache.ignite.internal.processors.cache.GridCacheAdapter;
+import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheEntry;
+import org.apache.ignite.internal.util.typedef.X;
+import org.apache.ignite.lang.IgniteFuture;
+import org.apache.ignite.lang.IgniteInClosure;
+import org.apache.ignite.plugin.extensions.communication.Message;
+import org.apache.ignite.spi.IgniteSpiException;
+import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionRollbackException;
+
+import javax.cache.CacheException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+
+import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
+import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
 
 /**
  * Tests one-phase commit transactions when some of the nodes fail in the middle of the transaction.
  */
+@SuppressWarnings("unchecked")
 public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
     /**
      * @return Grid count.
@@ -56,17 +70,25 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
+        cfg.setCacheConfiguration(cacheConfiguration(gridName));
+
+        cfg.setCommunicationSpi(new BanningCommunicationSpi());
+
+        return cfg;
+    }
+
+    /**
+     * @param gridName Grid name.
+     * @return Cache configuration.
+     */
+    protected CacheConfiguration cacheConfiguration(String gridName) {
         CacheConfiguration ccfg = new CacheConfiguration();
 
         ccfg.setCacheMode(CacheMode.PARTITIONED);
         ccfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
         ccfg.setBackups(1);
 
-        cfg.setCacheConfiguration(ccfg);
-
-        cfg.setCommunicationSpi(new BanningCommunicationSpi());
-
-        return cfg;
+        return ccfg;
     }
 
     /**
@@ -174,6 +196,10 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
 
             final int key = generateKey(ignite, backup);
 
+            IgniteEx backupNode = (IgniteEx)backupNode(key, null);
+
+            assertNotNull(backupNode);
+
             final CountDownLatch commitLatch = new CountDownLatch(1);
 
             if (!commit) {
@@ -263,7 +289,11 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
             fut.get();
 
             // Check there are no hanging transactions.
-            assertEquals(0, ((IgniteEx)ignite).context().cache().context().tm().idMapSize());
+            assertEquals(0, ((IgniteEx)ignite(0)).context().cache().context().tm().idMapSize());
+            assertEquals(0, ((IgniteEx)ignite(2)).context().cache().context().tm().idMapSize());
+            assertEquals(0, ((IgniteEx)ignite(3)).context().cache().context().tm().idMapSize());
+
+            dataCheck((IgniteKernal)ignite(0), (IgniteKernal)backupNode, key, commit);
         }
         finally {
             stopAllGrids();
@@ -271,6 +301,49 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
     }
 
     /**
+     * @param orig Originating cache.
+     * @param backup Backup cache.
+     * @param key Key being committed and checked.
+     * @param commit Commit or rollback flag.
+     * @throws Exception If check failed.
+     */
+    private void dataCheck(IgniteKernal orig, IgniteKernal backup, int key, boolean commit) throws Exception {
+        GridNearCacheEntry nearEntry = null;
+
+        GridCacheAdapter origCache = orig.internalCache(null);
+
+        if (origCache.isNear())
+            nearEntry = (GridNearCacheEntry)origCache.peekEx(key);
+
+        GridCacheAdapter backupCache = backup.internalCache(null);
+
+        if (backupCache.isNear())
+            backupCache = backupCache.context().near().dht();
+
+        GridDhtCacheEntry dhtEntry = (GridDhtCacheEntry)backupCache.peekEx(key);
+
+        if (commit) {
+            assertNotNull(dhtEntry);
+            assertTrue("dhtEntry=" + dhtEntry, dhtEntry.remoteMvccSnapshot().isEmpty());
+            assertTrue("dhtEntry=" + dhtEntry, dhtEntry.localCandidates().isEmpty());
+            assertEquals(key, backupCache.localPeek(key, null, null));
+
+            if (nearEntry != null) {
+                assertTrue("near=" + nearEntry, nearEntry.remoteMvccSnapshot().isEmpty());
+                assertTrue("near=" + nearEntry, nearEntry.localCandidates().isEmpty());
+
+                // Near peek wil be null since primary node has changed.
+                assertNull("near=" + nearEntry, origCache.localPeek(key, null, null));
+            }
+        }
+        else {
+            assertTrue("near=" + nearEntry + ", hc=" + System.identityHashCode(nearEntry), nearEntry == null);
+            assertTrue("Invalid backup cache entry: " + dhtEntry,
+                dhtEntry == null || dhtEntry.rawGetOrUnmarshal(false) == null);
+        }
+    }
+
+    /**
      * @param idx Index.
      * @return Communication SPI.
      */
@@ -321,8 +394,6 @@ public class GridCacheTxNodeFailureSelfTest extends GridCommonAbstractTest {
 
             if (!bannedClasses.contains(ioMsg.message().getClass())) {
                 super.sendMessage(node, msg, ackClosure);
-
-                U.debug(">>> Sending message: " + msg);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNearCacheTxNodeFailureSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNearCacheTxNodeFailureSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNearCacheTxNodeFailureSelfTest.java
new file mode 100644
index 0000000..5735182
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridNearCacheTxNodeFailureSelfTest.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht;
+
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.NearCacheConfiguration;
+
+/**
+ *
+ */
+public class GridNearCacheTxNodeFailureSelfTest extends GridCacheTxNodeFailureSelfTest {
+    /** {@inheritDoc} */
+    @Override protected CacheConfiguration cacheConfiguration(String gridName) {
+        return super.cacheConfiguration(gridName).setNearConfiguration(new NearCacheConfiguration());
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
index db55731..1d80ac1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.near;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.concurrent.Callable;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.ignite.Ignite;
@@ -90,11 +92,14 @@ public class IgniteCacheNearOnlyTxTest extends IgniteCacheAbstractTest {
         IgniteCache<Integer, Integer> cache0 = ignite(0).cache(null);
         IgniteCache<Integer, Integer> cache1 = ignite1.cache(null);
 
+        Collection<IgniteInternalFuture<?>> futs = new ArrayList<>();
+
         for (int i = 0; i < 5; i++) {
             log.info("Iteration: " + i);
 
-            GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
-                @Override public Object call() throws Exception {
+            futs.add(GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
+                @Override
+                public Object call() throws Exception {
                     int val = idx.getAndIncrement();
 
                     IgniteCache<Integer, Integer> cache = ignite1.cache(null);
@@ -104,10 +109,13 @@ public class IgniteCacheNearOnlyTxTest extends IgniteCacheAbstractTest {
 
                     return null;
                 }
-            }, 5, "put-thread");
+            }, 5, "put-thread"));
 
             assertEquals(cache0.localPeek(key), cache1.localPeek(key));
         }
+
+        for (IgniteInternalFuture<?> fut : futs)
+            fut.get();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/0d6927c2/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
index ab2374c..eaeb7b3 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
@@ -30,6 +30,8 @@ import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheTxNode
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtAtomicRemoveFailureTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtClientRemoveFailureTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheDhtRemoveFailureTest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridCacheTxNodeFailureSelfTest;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridNearCacheTxNodeFailureSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteAtomicLongChangingTopologySelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryAtomicSelfTest;
 import org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryTransactionalSelfTest;
@@ -100,6 +102,9 @@ public class IgniteCacheFailoverTestSuite extends TestSuite {
         suite.addTestSuite(IgniteCacheTopologySafeGetSelfTest.class);
         suite.addTestSuite(IgniteAtomicLongChangingTopologySelfTest.class);
 
+        suite.addTestSuite(GridCacheTxNodeFailureSelfTest.class);
+        suite.addTestSuite(GridNearCacheTxNodeFailureSelfTest.class);
+
         return suite;
     }
 }