http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java new file mode 100644 index 0000000..318db9e --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite3.java @@ -0,0 +1,62 @@ +/* + * 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.testsuites; + +import junit.framework.TestSuite; +import org.apache.ignite.internal.processors.cache.GridCacheIncrementTransformTest; +import org.apache.ignite.internal.processors.cache.IgniteCacheTopologySafeGetSelfTest; +import org.apache.ignite.internal.processors.cache.distributed.*; +import org.apache.ignite.internal.processors.cache.distributed.dht.*; +import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.*; +import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicNearRemoveFailureTest; +import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheAtomicPrimaryWriteOrderNearRemoveFailureTest; +import org.apache.ignite.internal.processors.cache.distributed.near.GridCacheNearRemoveFailureTest; +import org.apache.ignite.spi.communication.tcp.IgniteCacheSslStartStopSelfTest; +import org.apache.ignite.testframework.GridTestUtils; + +import java.util.Set; + +/** + * Test suite. + */ +public class IgniteCacheFailoverTestSuite3 extends TestSuite { + /** + * @return Ignite Cache Failover test suite. + * @throws Exception Thrown in case of the failure. + */ + public static TestSuite suite() throws Exception { + return suite(null); + } + + /** + * @param ignoredTests Tests don't include in the execution. + * @return Test suite. + * @throws Exception Thrown in case of the failure. + */ + public static TestSuite suite(Set<Class> ignoredTests) throws Exception { + TestSuite suite = new TestSuite("Cache Failover Test Suite3"); + + suite.addTestSuite(IgniteCachePutRetryAtomicSelfTest.class); + suite.addTestSuite(IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest.class); + suite.addTestSuite(IgniteCachePutRetryTransactionalSelfTest.class); + + suite.addTestSuite(IgniteCacheSslStartStopSelfTest.class); + + return suite; + } +}
http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java index 869f25c..34ef79b 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java @@ -18,18 +18,13 @@ package org.apache.ignite.testsuites; import junit.framework.TestSuite; -import org.apache.ignite.internal.processors.cache.GridCachePutAllFailoverSelfTest; -import org.apache.ignite.internal.processors.cache.IgniteCacheAtomicPutAllFailoverSelfTest; -import org.apache.ignite.internal.processors.cache.IgniteCachePutAllRestartTest; -import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheAtomicNodeRestartTest; import org.apache.ignite.internal.processors.cache.distributed.dht.GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest; import org.apache.ignite.internal.processors.cache.distributed.near.GridCachePartitionedNodeRestartTest; import org.apache.ignite.internal.processors.cache.distributed.near.GridCachePartitionedOptimisticTxNodeRestartTest; import org.apache.ignite.internal.processors.cache.distributed.replicated.GridCacheReplicatedNodeRestartSelfTest; -import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheAtomicReplicatedNodeRestartSelfTest; /** - * In-Memory Data Grid stability test suite on changing topology. + * Cache stability test suite on changing topology. */ public class IgniteCacheRestartTestSuite extends TestSuite { /** @@ -44,13 +39,6 @@ public class IgniteCacheRestartTestSuite extends TestSuite { suite.addTestSuite(GridCacheReplicatedNodeRestartSelfTest.class); suite.addTestSuite(GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest.class); - suite.addTestSuite(IgniteCacheAtomicNodeRestartTest.class); - suite.addTestSuite(IgniteCacheAtomicReplicatedNodeRestartSelfTest.class); - - suite.addTestSuite(IgniteCacheAtomicPutAllFailoverSelfTest.class); - suite.addTestSuite(IgniteCachePutAllRestartTest.class); - suite.addTestSuite(GridCachePutAllFailoverSelfTest.class); - return suite; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite2.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite2.java new file mode 100644 index 0000000..c9e9467 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite2.java @@ -0,0 +1,47 @@ +/* + * 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.testsuites; + +import junit.framework.TestSuite; +import org.apache.ignite.internal.processors.cache.GridCachePutAllFailoverSelfTest; +import org.apache.ignite.internal.processors.cache.IgniteCacheAtomicPutAllFailoverSelfTest; +import org.apache.ignite.internal.processors.cache.IgniteCachePutAllRestartTest; +import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheAtomicNodeRestartTest; +import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheAtomicReplicatedNodeRestartSelfTest; + +/** + * Cache stability test suite on changing topology. + */ +public class IgniteCacheRestartTestSuite2 extends TestSuite { + /** + * @return Suite. + * @throws Exception If failed. + */ + public static TestSuite suite() throws Exception { + TestSuite suite = new TestSuite("Cache Restart Test Suite2"); + + suite.addTestSuite(IgniteCacheAtomicNodeRestartTest.class); + suite.addTestSuite(IgniteCacheAtomicReplicatedNodeRestartSelfTest.class); + + suite.addTestSuite(IgniteCacheAtomicPutAllFailoverSelfTest.class); + suite.addTestSuite(IgniteCachePutAllRestartTest.class); + suite.addTestSuite(GridCachePutAllFailoverSelfTest.class); + + return suite; + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java index 63e2bc3..07c49a5 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2AbstractKeyValueRow.java @@ -182,9 +182,11 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row { /** {@inheritDoc} */ @Override public Value getValue(int col) { if (col < DEFAULT_COLUMNS_COUNT) { - Value v = peekValue(col); + Value v; if (col == VAL_COL) { + v = syncValue(0); + long start = 0; int attempt = 0; @@ -206,11 +208,15 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row { Object valObj = desc.readFromSwap(k); if (valObj != null) { - Value upd = desc.wrap(valObj, desc.valueType()); + // Even if we've found valObj in swap, it is may be some new value, + // while the needed value was already unswapped, so we have to recheck it. + if ((v = WeakValue.unwrap(syncValue(0))) == null && (v = getOffheapValue(VAL_COL)) == null) { + Value upd = desc.wrap(valObj, desc.valueType()); - v = updateWeakValue(upd); + v = updateWeakValue(upd); - return v == null ? upd : v; + return v == null ? upd : v; + } } else { // If nothing found in swap then we should be already unswapped. @@ -230,18 +236,21 @@ public abstract class GridH2AbstractKeyValueRow extends GridH2Row { ". This can happen due to a long GC pause."); } } - - if (v == null) { + else { assert col == KEY_COL : col; - v = getOffheapValue(KEY_COL); + v = peekValue(KEY_COL); - assert v != null : v; + if (v == null) { + v = getOffheapValue(KEY_COL); - setValue(KEY_COL, v); + assert v != null; - if (peekValue(VAL_COL) == null) - cache(); + setValue(KEY_COL, v); + + if (peekValue(VAL_COL) == null) + cache(); + } } assert !(v instanceof WeakValue) : v; http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java index 8f453a5..eb0880a 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheOffHeapAndSwapSelfTest.java @@ -249,6 +249,10 @@ public class GridCacheOffHeapAndSwapSelfTest extends GridCommonAbstractTest { assertEquals(ENTRY_CNT - i - 1, cache.localSize(CachePeekMode.ONHEAP)); } + log.info("Cache size [onheap=" + cache.localSize(CachePeekMode.ONHEAP) + + ", offheap=" + cache.localSize(CachePeekMode.OFFHEAP) + + ", swap=" + cache.localSize(CachePeekMode.SWAP) + ']'); + // Ensure that part of entries located in off-heap memory and part is swapped. assertEquals(0, cache.localSize(CachePeekMode.ONHEAP)); assertTrue(cache.localSize(CachePeekMode.OFFHEAP) > 0); http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java index b02b37e..be644e2 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryMultiThreadedSelfTest.java @@ -32,7 +32,6 @@ import org.apache.ignite.IgniteCache; import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.cache.CacheMemoryMode; import org.apache.ignite.cache.CachePeekMode; -import org.apache.ignite.cache.CacheWriteSynchronizationMode; import org.apache.ignite.cache.eviction.lru.LruEvictionPolicy; import org.apache.ignite.cache.query.ScanQuery; import org.apache.ignite.cache.query.SqlQuery; @@ -55,6 +54,7 @@ import org.jetbrains.annotations.Nullable; import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL; import static org.apache.ignite.cache.CacheMode.PARTITIONED; +import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC; /** * Multi-threaded tests for cache queries. @@ -111,7 +111,7 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes cacheCfg.setCacheMode(PARTITIONED); cacheCfg.setAtomicityMode(TRANSACTIONAL); - cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC); + cacheCfg.setWriteSynchronizationMode(FULL_SYNC); cacheCfg.setSwapEnabled(true); cacheCfg.setBackups(1); @@ -139,6 +139,11 @@ public class IgniteCacheQueryMultiThreadedSelfTest extends GridCommonAbstractTes return cacheCfg; } + /** {@inheritDoc} */ + @Override protected long getTestTimeout() { + return DURATION + 60_000; + } + /** * */ http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryOffheapEvictsMultiThreadedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryOffheapEvictsMultiThreadedSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryOffheapEvictsMultiThreadedSelfTest.java index 909fd74..d7d2b5a 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryOffheapEvictsMultiThreadedSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheQueryOffheapEvictsMultiThreadedSelfTest.java @@ -22,11 +22,6 @@ package org.apache.ignite.internal.processors.cache; */ public class IgniteCacheQueryOffheapEvictsMultiThreadedSelfTest extends IgniteCacheQueryOffheapMultiThreadedSelfTest { /** {@inheritDoc} */ - @Override protected void beforeTestsStarted() throws Exception { - fail("IGNITE-959"); - } - - /** {@inheritDoc} */ @Override protected boolean evictsEnabled() { return true; } http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java index 7e72292..5dbb12c 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheClientQueryReplicatedNodeRestartSelfTest.java @@ -315,7 +315,7 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom info("Executed queries: " + c); } } - }, qryThreadNum); + }, qryThreadNum, "query-thread"); final AtomicInteger restartCnt = new AtomicInteger(); @@ -334,10 +334,14 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom } while (!locks.compareAndSet(g, 0, -1)); + log.info("Stop node: " + g); + stopGrid(g); Thread.sleep(rnd.nextInt(nodeLifeTime)); + log.info("Start node: " + g); + startGrid(g); Thread.sleep(rnd.nextInt(nodeLifeTime)); @@ -352,7 +356,7 @@ public class IgniteCacheClientQueryReplicatedNodeRestartSelfTest extends GridCom return true; } - }, restartThreadsNum); + }, restartThreadsNum, "restart-thread"); Thread.sleep(duration); http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java index 32da55a..45a249d 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest.java @@ -149,7 +149,7 @@ public class IgniteCacheQueryNodeRestartSelfTest extends GridCacheAbstractSelfTe info("Executed queries: " + c); } } - }, qryThreadNum); + }, qryThreadNum, "query-thread"); final AtomicInteger restartCnt = new AtomicInteger(); @@ -178,7 +178,7 @@ public class IgniteCacheQueryNodeRestartSelfTest extends GridCacheAbstractSelfTe return true; } - }, 1); + }, 1, "restart-thread"); Thread.sleep(duration); http://git-wip-us.apache.org/repos/asf/ignite/blob/a7490a6e/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java ---------------------------------------------------------------------- diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java index 9e903d1..1276405 100644 --- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java +++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheQueryNodeRestartSelfTest2.java @@ -277,7 +277,7 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest info("Executed queries: " + c); } } - }, qryThreadNum); + }, qryThreadNum, "query-thread"); final AtomicInteger restartCnt = new AtomicInteger(); @@ -296,10 +296,14 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest } while (!locks.compareAndSet(g, 0, -1)); + log.info("Stop node: " + g); + stopGrid(g); Thread.sleep(rnd.nextInt(nodeLifeTime)); + log.info("Start node: " + g); + startGrid(g); Thread.sleep(rnd.nextInt(nodeLifeTime)); @@ -314,7 +318,7 @@ public class IgniteCacheQueryNodeRestartSelfTest2 extends GridCommonAbstractTest return true; } - }, restartThreadsNum); + }, restartThreadsNum, "restart-thread"); Thread.sleep(duration);