You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dg...@apache.org on 2018/10/29 13:54:04 UTC

ignite git commit: IGNITE09917 Write proper tests for start/stop client - Fixes #5062.

Repository: ignite
Updated Branches:
  refs/heads/master 92af53895 -> 8bd957578


IGNITE09917 Write proper tests for start/stop client - Fixes #5062.

Signed-off-by: Dmitriy Govorukhin <dm...@gmail.com>


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

Branch: refs/heads/master
Commit: 8bd9575788545f724b9cc514e2e5fb8891313950
Parents: 92af538
Author: ibessonov <be...@gmail.com>
Authored: Mon Oct 29 16:53:06 2018 +0300
Committer: Dmitriy Govorukhin <dm...@gmail.com>
Committed: Mon Oct 29 16:53:06 2018 +0300

----------------------------------------------------------------------
 .../GridDhtPartitionsExchangeFuture.java        |  16 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   2 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   2 +
 .../distributed/CacheBlockOnGetAllTest.java     |  48 ++++
 .../CacheBlockOnReadAbstractTest.java           | 286 +++++++++++++++----
 .../cache/distributed/CacheBlockOnScanTest.java |  48 ++++
 .../distributed/CacheBlockOnSingleGetTest.java  |  48 ++++
 .../distributed/CacheBlockOnSqlQueryTest.java   |  24 ++
 8 files changed, 406 insertions(+), 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/8bd95757/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 9314096..b26db67 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1301,8 +1301,6 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
             finally {
                 cctx.exchange().exchangerBlockingSectionEnd();
             }
-
-            return;
         }
         else {
             if (centralizedAff) { // Last server node failed.
@@ -1316,15 +1314,15 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
             }
             else
                 onAllServersLeft();
-        }
 
-        cctx.exchange().exchangerBlockingSectionBegin();
+            cctx.exchange().exchangerBlockingSectionBegin();
 
-        try {
-            onDone(initialVersion());
-        }
-        finally {
-            cctx.exchange().exchangerBlockingSectionEnd();
+            try {
+                onDone(initialVersion());
+            }
+            finally {
+                cctx.exchange().exchangerBlockingSectionEnd();
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/8bd95757/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index f26a217..032c9a6 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -6871,7 +6871,7 @@ class ServerImpl extends TcpDiscoveryImpl {
          * @param msgBytes Optional message bytes.
          */
         void addMessage(TcpDiscoveryAbstractMessage msg, @Nullable byte[] msgBytes) {
-            T2 t = new T2<>(msg, msgBytes);
+            T2<TcpDiscoveryAbstractMessage, byte[]> t = new T2<>(msg, msgBytes);
 
             if (msg.highPriority())
                 queue.addFirst(t);

http://git-wip-us.apache.org/repos/asf/ignite/blob/8bd95757/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 55462ff..9f70d43 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -108,6 +108,7 @@ import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryDuplicateIdMessa
 import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryEnsureDelivery;
 import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryJoinRequestMessage;
 import org.jetbrains.annotations.Nullable;
+import org.jetbrains.annotations.TestOnly;
 
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_CONSISTENT_ID_BY_HOST_WITHOUT_PORT;
 import static org.apache.ignite.IgniteSystemProperties.getBoolean;
@@ -1612,6 +1613,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements IgniteDiscovery
     /**
      * @param msg Message.
      */
+    @TestOnly
     protected void startMessageProcess(TcpDiscoveryAbstractMessage msg) {
         // No-op, intended for usage in tests.
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8bd95757/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnGetAllTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnGetAllTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnGetAllTest.java
index 084a431..b970787 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnGetAllTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnGetAllTest.java
@@ -193,4 +193,52 @@ public class CacheBlockOnGetAllTest extends CacheBlockOnReadAbstractTest {
     @Override public void testUpdateBaselineTopologyTransactionalReplicated() {
         fail("https://issues.apache.org/jira/browse/IGNITE-9883");
     }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    @Override public void testStartClientAtomicPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = REPLICATED)
+    @Override public void testStartClientAtomicReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    @Override public void testStartClientTransactionalPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = REPLICATED)
+    @Override public void testStartClientTransactionalReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    @Override public void testStopClientAtomicPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = REPLICATED)
+    @Override public void testStopClientAtomicReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    @Override public void testStopClientTransactionalPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = REPLICATED)
+    @Override public void testStopClientTransactionalReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8bd95757/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnReadAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnReadAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnReadAbstractTest.java
index 42b5df0..211e9bc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnReadAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnReadAbstractTest.java
@@ -27,6 +27,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -34,6 +35,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.function.BiConsumer;
 import java.util.function.Predicate;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
@@ -68,9 +70,12 @@ import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteBiPredicate;
 import org.apache.ignite.plugin.extensions.communication.Message;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.TestTcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractMessage;
+import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeAddFinishedMessage;
+import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryNodeLeftMessage;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.jetbrains.annotations.NotNull;
@@ -105,9 +110,12 @@ public abstract class CacheBlockOnReadAbstractTest extends GridCommonAbstractTes
     /** Latch that is used to wait until all required messages are blocked. */
     private volatile CountDownLatch cntFinishedReadOperations;
 
-    /** Custom ip finder. */
+    /** Custom ip finder. Replaces {@link #IP_FINDER} if present at the moment of node starting. */
     private volatile TcpDiscoveryIpFinder customIpFinder;
 
+    /** Discovery message processor. Used in every started node. */
+    private volatile BiConsumer<TcpDiscoveryAbstractMessage, String> discoveryMsgProcessor;
+
     /**
      * Number of baseline servers to start before test.
      *
@@ -264,10 +272,16 @@ public abstract class CacheBlockOnReadAbstractTest extends GridCommonAbstractTes
 
         cfg.setConsistentId(igniteInstanceName);
 
-        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(customIpFinder == null ? IP_FINDER : customIpFinder);
-
         cfg.setCommunicationSpi(new TestRecordingCommunicationSpi());
 
+        cfg.setDiscoverySpi(new TestTcpDiscoverySpi() {
+            /** {@inheritDoc} */
+            @Override protected void startMessageProcess(TcpDiscoveryAbstractMessage msg) {
+                if (discoveryMsgProcessor != null)
+                    discoveryMsgProcessor.accept(msg, igniteInstanceName);
+            }
+        }.setIpFinder(customIpFinder == null ? IP_FINDER : customIpFinder));
+
         cfg.setDataStorageConfiguration(
             new DataStorageConfiguration()
                 .setDefaultDataRegionConfiguration(
@@ -413,56 +427,6 @@ public abstract class CacheBlockOnReadAbstractTest extends GridCommonAbstractTes
             () -> baseline.get(0).destroyCache(cacheNames.remove(0))
         );
     }
-    /**
-     * @throws Exception If failed.
-     */
-    public void _testStartClient() throws Exception {
-        startNodesInClientMode(true);
-
-        doTest(
-            asMessagePredicate(discoEvt -> discoEvt.type() == EventType.EVT_NODE_JOINED),
-            () -> {
-                for (int i = 0; i < baselineServersCount() - 2; i++)
-                    cntFinishedReadOperations.countDown();
-
-                customIpFinder = new TcpDiscoveryVmIpFinder(false)
-                    .setAddresses(
-                        Collections.singletonList("127.0.0.1:47500")
-                    );
-
-                startGrid(UUID.randomUUID().toString());
-
-                customIpFinder = null;
-            }
-        );
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    public void _testStopClient() throws Exception {
-        customIpFinder = new TcpDiscoveryVmIpFinder(false)
-            .setAddresses(
-                Collections.singletonList("127.0.0.1:47500")
-            );
-
-        startNodesInClientMode(true);
-
-        for (int i = 0; i < 3; i++)
-            clients.add(startGrid(UUID.randomUUID().toString()));
-
-        customIpFinder = null;
-
-        doTest(
-            asMessagePredicate(discoEvt -> discoEvt.type() == EventType.EVT_NODE_LEFT),
-            () -> {
-                for (int i = 0; i < baselineServersCount() - 2; i++)
-                    cntFinishedReadOperations.countDown();
-
-                stopGrid(clients.remove(clients.size() - 1).name());
-            }
-        );
-    }
 
     /**
      * @throws Exception If failed.
@@ -684,6 +648,102 @@ public abstract class CacheBlockOnReadAbstractTest extends GridCommonAbstractTes
     }
 
     /**
+     * @throws Exception If failed.
+     */
+    @Params(atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    public void testStartClientAtomicPartitioned() throws Exception {
+        testStartClientTransactionalReplicated();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Params(atomicityMode = ATOMIC, cacheMode = REPLICATED)
+    public void testStartClientAtomicReplicated() throws Exception {
+        testStartClientTransactionalReplicated();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Params(atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    public void testStartClientTransactionalPartitioned() throws Exception {
+        testStartClientTransactionalReplicated();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Params(atomicityMode = TRANSACTIONAL, cacheMode = REPLICATED)
+    public void testStartClientTransactionalReplicated() throws Exception {
+        doTest(
+            TcpDiscoveryNodeAddFinishedMessage.class,
+            () -> {
+                startNodesInClientMode(true);
+
+                customIpFinder = new TcpDiscoveryVmIpFinder(false)
+                    .setAddresses(
+                        Collections.singletonList("127.0.0.1:47502")
+                    );
+
+                try {
+                    startGrid(UUID.randomUUID().toString());
+                }
+                finally {
+                    customIpFinder = null;
+                }
+            }
+        );
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Params(atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    public void testStopClientAtomicPartitioned() throws Exception {
+        testStopClientTransactionalReplicated();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Params(atomicityMode = ATOMIC, cacheMode = REPLICATED)
+    public void testStopClientAtomicReplicated() throws Exception {
+        testStopClientTransactionalReplicated();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Params(atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    public void testStopClientTransactionalPartitioned() throws Exception {
+        testStopClientTransactionalReplicated();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    @Params(atomicityMode = TRANSACTIONAL, cacheMode = REPLICATED, timeout = 5_000L)
+    public void testStopClientTransactionalReplicated() throws Exception {
+        startNodesInClientMode(true);
+
+        customIpFinder = new TcpDiscoveryVmIpFinder(false)
+            .setAddresses(
+                Collections.singletonList("127.0.0.1:47502")
+            );
+
+        for (int i = 0; i < 3; i++)
+            clients.add(startGrid(UUID.randomUUID().toString()));
+
+        customIpFinder = null;
+
+        doTest(
+            TcpDiscoveryNodeLeftMessage.class,
+            () -> stopGrid(clients.remove(clients.size() - 1).name())
+        );
+    }
+
+    /**
      * Checks that given discovery event is from "Create cache" operation.
      *
      * @param discoEvt Discovery event.
@@ -754,6 +814,34 @@ public abstract class CacheBlockOnReadAbstractTest extends GridCommonAbstractTes
             blockMsgPred
         );
 
+        doTest(backgroundOperation);
+    }
+
+    /**
+     * Checks that {@code block} closure doesn't block read operation.
+     * Does it for client, baseline and regular server node.
+     *
+     * @param blockMsgCls Class of discovery message to block.
+     * @param block Blocking operation.
+     * @throws Exception If failed.
+     */
+    public void doTest(Class<? extends TcpDiscoveryAbstractMessage> blockMsgCls, RunnableX block) throws Exception {
+        BlockDiscoveryMessageBackgroundOperation backgroundOperation = new BlockDiscoveryMessageBackgroundOperation(
+            block,
+            blockMsgCls
+        );
+
+        doTest(backgroundOperation);
+    }
+
+    /**
+     * Checks that {@code block} closure doesn't block read operation.
+     * Does it for client, baseline and regular server node.
+     *
+     * @param backgroundOperation Background operation.
+     * @throws Exception If failed.
+     */
+    public void doTest(BackgroundOperation backgroundOperation) throws Exception {
         CacheReadBackgroundOperation<?, ?> readOperation = getReadOperation();
 
         readOperation.initCache(baseline.get(0), true);
@@ -776,14 +864,12 @@ public abstract class CacheBlockOnReadAbstractTest extends GridCommonAbstractTes
             );
         }
 
-
         doTest0(clients.get(0), readOperation, backgroundOperation);
 
         doTest0(srvs.get(0), readOperation, backgroundOperation);
 
         doTest0(baseline.get(0), readOperation, backgroundOperation);
 
-
         try (AutoCloseable read = readOperation.start()) {
             Thread.sleep(500L);
         }
@@ -963,8 +1049,8 @@ public abstract class CacheBlockOnReadAbstractTest extends GridCommonAbstractTes
     }
 
     /**
-     * Background operation that executes some node request and doesn't allow its messages to be fully processed until
-     * operation is stopped.
+     * Background operation that executes some node request and doesn't allow its exchange messages to be fully
+     * processed until operation is stopped.
      */
     protected class BlockMessageOnBaselineBackgroundOperation extends BackgroundOperation {
         /** */
@@ -1033,6 +1119,90 @@ public abstract class CacheBlockOnReadAbstractTest extends GridCommonAbstractTes
         }
     }
 
+    /**
+     * Background operation that executes some node request and doesn't allow its discovery messages to be fully
+     * processed until operation is stopped.
+     */
+    protected class BlockDiscoveryMessageBackgroundOperation extends BackgroundOperation {
+        /** */
+        private final RunnableX block;
+
+        /** */
+        private final Class<? extends TcpDiscoveryAbstractMessage> blockMsgCls;
+
+        /** */
+        private volatile CountDownLatch blockLatch;
+
+        /**
+         * @param block Blocking operation.
+         * @param blockMsgCls Class of message to block.
+         *
+         * @see BlockMessageOnBaselineBackgroundOperation#blockMessage(ClusterNode, Message)
+         */
+        protected BlockDiscoveryMessageBackgroundOperation(
+            RunnableX block,
+            Class<? extends TcpDiscoveryAbstractMessage> blockMsgCls
+        ) {
+            this.block = block;
+            this.blockMsgCls = blockMsgCls;
+        }
+
+        /** {@inheritDoc} */
+        @Override protected void execute() {
+            try {
+                blockLatch = new CountDownLatch(1);
+
+                discoveryMsgProcessor = this::processMessage;
+
+                for (int i = 0; i < baselineServersCount() - 2; i++)
+                    cntFinishedReadOperations.countDown();
+
+                block.run();
+            }
+            finally {
+                discoveryMsgProcessor = null;
+            }
+        }
+
+        /**
+         * Process discovery spi message.
+         *
+         * @param msg Message.
+         * @param receiverConsistentId Consistent ID of message receiver.
+         */
+        private void processMessage(TcpDiscoveryAbstractMessage msg, String receiverConsistentId) {
+            if (!blockMsgCls.isInstance(msg))
+                return;
+
+            boolean baselineSnd = Objects.equals(
+                baseline.get(1).localNode().consistentId(),
+                receiverConsistentId
+            );
+
+            if (baselineSnd) {
+                cntFinishedReadOperations.countDown();
+
+                try {
+                    blockLatch.await();
+                }
+                catch (InterruptedException ignore) {
+                }
+            }
+        }
+
+        /** {@inheritDoc} */
+        @Override protected long stopTimeout() {
+            // Should be big enough so thread will stop by it's own. Otherwise test will fail, but that's fine.
+            return 30_000L;
+        }
+
+        /** {@inheritDoc} */
+        @Override void stop() throws Exception {
+            blockLatch.countDown();
+
+            super.stop();
+        }
+    }
 
     /**
      * Runnable that can throw exceptions.

http://git-wip-us.apache.org/repos/asf/ignite/blob/8bd95757/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnScanTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnScanTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnScanTest.java
index 2912d05..dfe6808 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnScanTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnScanTest.java
@@ -70,4 +70,52 @@ public class CacheBlockOnScanTest extends CacheBlockOnReadAbstractTest {
     @Override public void testStopBaselineTransactionalReplicated() throws Exception {
         super.testStopBaselineTransactionalReplicated();
     }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = REPLICATED)
+    @Override public void testStartClientAtomicReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = REPLICATED)
+    @Override public void testStartClientTransactionalReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = REPLICATED)
+    @Override public void testStopClientAtomicReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = REPLICATED)
+    @Override public void testStopClientTransactionalReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    @Override public void testStartClientAtomicPartitioned() throws Exception {
+        super.testStartClientTransactionalReplicated();
+    }
+
+    /** {@inheritDoc} */
+    @Params(atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    @Override public void testStartClientTransactionalPartitioned() throws Exception {
+        super.testStartClientTransactionalReplicated();
+    }
+
+    /** {@inheritDoc} */
+    @Params(atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    @Override public void testStopClientAtomicPartitioned() throws Exception {
+        super.testStopClientTransactionalReplicated();
+    }
+
+    /** {@inheritDoc} */
+    @Params(atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    @Override public void testStopClientTransactionalPartitioned() throws Exception {
+        super.testStopClientTransactionalReplicated();
+    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8bd95757/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSingleGetTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSingleGetTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSingleGetTest.java
index fc181be..e5d1fe1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSingleGetTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSingleGetTest.java
@@ -187,4 +187,52 @@ public class CacheBlockOnSingleGetTest extends CacheBlockOnReadAbstractTest {
     @Override public void testUpdateBaselineTopologyTransactionalReplicated() {
         fail("https://issues.apache.org/jira/browse/IGNITE-9883");
     }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    @Override public void testStartClientAtomicPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = REPLICATED)
+    @Override public void testStartClientAtomicReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    @Override public void testStartClientTransactionalPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = REPLICATED)
+    @Override public void testStartClientTransactionalReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    @Override public void testStopClientAtomicPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = REPLICATED)
+    @Override public void testStopClientAtomicReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    @Override public void testStopClientTransactionalPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = REPLICATED)
+    @Override public void testStopClientTransactionalReplicated() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9987");
+    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/8bd95757/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSqlQueryTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSqlQueryTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSqlQueryTest.java
index f1d96ea..e9645b2 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSqlQueryTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheBlockOnSqlQueryTest.java
@@ -128,4 +128,28 @@ public class CacheBlockOnSqlQueryTest extends CacheBlockOnReadAbstractTest {
     @Override public void testStopBaselineTransactionalPartitioned() {
         fail("https://issues.apache.org/jira/browse/IGNITE-9916");
     }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    @Override public void testStartClientAtomicPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9916");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    @Override public void testStartClientTransactionalPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9916");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = ATOMIC, cacheMode = PARTITIONED)
+    @Override public void testStopClientAtomicPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9916");
+    }
+
+    /** {@inheritDoc} */
+    @Params(baseline = 1, atomicityMode = TRANSACTIONAL, cacheMode = PARTITIONED)
+    @Override public void testStopClientTransactionalPartitioned() {
+        fail("https://issues.apache.org/jira/browse/IGNITE-9916");
+    }
 }