This is an automated email from the ASF dual-hosted git repository. irakov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push: new 0dfd983 IGNITE-12618 Affinity cache for version of last server event can be wiped from history - Fixes #7359. 0dfd983 is described below commit 0dfd98388e250d099912cee8793f4cd45597eb9a Author: Slava Koptilin <slava.kopti...@gmail.com> AuthorDate: Wed Feb 5 18:34:39 2020 +0300 IGNITE-12618 Affinity cache for version of last server event can be wiped from history - Fixes #7359. Signed-off-by: Ivan Rakov <ira...@apache.org> --- .../affinity/GridAffinityAssignmentCache.java | 96 ++++++---- .../cache/affinity/AffinityHistoryCleanupTest.java | 45 ++--- .../GridAffinityProcessorMemoryLeakTest.java | 194 --------------------- .../cache/CacheNoAffinityExchangeTest.java | 22 ++- .../ignite/testsuites/IgniteBasicTestSuite.java | 8 +- 5 files changed, 111 insertions(+), 254 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java index 9297ae8..52a9342 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/affinity/GridAffinityAssignmentCache.java @@ -44,6 +44,7 @@ import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.cluster.NodeOrderComparator; import org.apache.ignite.internal.managers.discovery.DiscoCache; import org.apache.ignite.internal.processors.cache.ExchangeDiscoveryEvents; +import org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager; import org.apache.ignite.internal.processors.cluster.BaselineTopology; import org.apache.ignite.internal.util.future.GridFutureAdapter; import org.apache.ignite.internal.util.typedef.F; @@ -65,11 +66,27 @@ import static org.apache.ignite.internal.events.DiscoveryCustomEvent.EVT_DISCOVE * Affinity cached function. */ public class GridAffinityAssignmentCache { - /** Cleanup history size. */ - private final int MAX_HIST_SIZE = getInteger(IGNITE_AFFINITY_HISTORY_SIZE, 50); + /** + * Affinity cache will shrink when total number of non-shallow (see {@link HistoryAffinityAssignmentImpl}) + * historical instances will be greater than value of this constant. + */ + private final int MAX_NON_SHALLOW_HIST_SIZE = getInteger(IGNITE_AFFINITY_HISTORY_SIZE, 25); - /** Cleanup history links size (calculated by both real entries and shallow copies). */ - private final int MAX_HIST_LINKS_SIZE = MAX_HIST_SIZE * 10; + /** + * Affinity cache will also shrink when total number of both shallow ({@link HistoryAffinityAssignmentShallowCopy}) + * and non-shallow (see {@link HistoryAffinityAssignmentImpl}) historical instances will be greater than + * value of this constant. + */ + private final int MAX_TOTAL_HIST_SIZE = MAX_NON_SHALLOW_HIST_SIZE * 10; + + /** + * Independent of {@link #MAX_NON_SHALLOW_HIST_SIZE} and {@link #MAX_TOTAL_HIST_SIZE}, affinity cache will always + * keep this number of non-shallow (see {@link HistoryAffinityAssignmentImpl}) instances. + * We need at least one real instance, otherwise we won't be able to get affinity cache for + * {@link GridCachePartitionExchangeManager#lastAffinityChangedTopologyVersion} in case cluster has experienced + * too many client joins / client leaves / local cache starts. + */ + private final int MIN_NON_SHALLOW_HIST_SIZE = 2; /** Partition distribution. */ private final float partDistribution = getFloat(IGNITE_PART_DISTRIBUTION_WARN_THRESHOLD, 50f); @@ -122,8 +139,8 @@ public class GridAffinityAssignmentCache { /** Node stop flag. */ private volatile IgniteCheckedException stopErr; - /** Full history size. */ - private final AtomicInteger fullHistSize = new AtomicInteger(); + /** Number of non-shallow (see {@link HistoryAffinityAssignmentImpl}) affinity cache instances. */ + private final AtomicInteger nonShallowHistSize = new AtomicInteger(); /** */ private final Object similarAffKey; @@ -278,7 +295,7 @@ public class GridAffinityAssignmentCache { affCache.clear(); - fullHistSize.set(0); + nonShallowHistSize.set(0); head.set(new GridAffinityAssignmentV2(AffinityTopologyVersion.NONE)); @@ -780,8 +797,8 @@ public class GridAffinityAssignmentCache { cache = e.getValue(); if (cache == null) { - throw new IllegalStateException("Getting affinity for too old topology version that is already " + - "out of history [locNode=" + ctx.discovery().localNode() + + throw new IllegalStateException("Getting affinity for topology version earlier than affinity is " + + "calculated [locNode=" + ctx.discovery().localNode() + ", grp=" + cacheOrGrpName + ", topVer=" + topVer + ", lastAffChangeTopVer=" + lastAffChangeTopVer + @@ -791,8 +808,8 @@ public class GridAffinityAssignmentCache { } if (cache.topologyVersion().compareTo(topVer) > 0) { - throw new IllegalStateException("Getting affinity for topology version earlier than affinity is " + - "calculated [locNode=" + ctx.discovery().localNode() + + throw new IllegalStateException("Getting affinity for too old topology version that is already " + + "out of history [locNode=" + ctx.discovery().localNode() + ", grp=" + cacheOrGrpName + ", topVer=" + topVer + ", lastAffChangeTopVer=" + lastAffChangeTopVer + @@ -910,59 +927,74 @@ public class GridAffinityAssignmentCache { cleanupNeeded = true; if (added.requiresHistoryCleanup()) - fullHistSize.incrementAndGet(); + nonShallowHistSize.incrementAndGet(); } else { if (replaced.requiresHistoryCleanup() != added.requiresHistoryCleanup()) { if (added.requiresHistoryCleanup()) { cleanupNeeded = true; - fullHistSize.incrementAndGet(); + nonShallowHistSize.incrementAndGet(); } else - fullHistSize.decrementAndGet(); + nonShallowHistSize.decrementAndGet(); } } if (!cleanupNeeded) return; - int fullSize = fullHistSize.get(); - - int linksSize = affCache.size(); + int nonShallowSize = nonShallowHistSize.get(); - int fullRmvCnt = fullSize > MAX_HIST_SIZE ? (MAX_HIST_SIZE / 2) : 0; + int totalSize = affCache.size(); - int linksRmvCnt = linksSize > MAX_HIST_LINKS_SIZE ? (MAX_HIST_LINKS_SIZE / 2) : 0; + if (shouldContinueCleanup(nonShallowSize, totalSize)) { + int initNonShallowSize = nonShallowSize; - if (fullRmvCnt > 0 || linksRmvCnt > 0) { Iterator<HistoryAffinityAssignment> it = affCache.values().iterator(); - AffinityTopologyVersion topVerRmv = null; - - while (it.hasNext() && (fullRmvCnt > 0 || linksRmvCnt > 0)) { + while (it.hasNext()) { HistoryAffinityAssignment aff0 = it.next(); - if (aff0.requiresHistoryCleanup()) { // Don't decrement counter in case of fullHistoryCleanupRequired copy remove. - fullRmvCnt--; + if (aff0.requiresHistoryCleanup()) { + // We can stop cleanup only on non-shallow item. + // Keeping part of shallow items chain if corresponding real item is missing makes no sense. + if (!shouldContinueCleanup(nonShallowSize, totalSize)) { + nonShallowHistSize.getAndAdd(nonShallowSize - initNonShallowSize); + + // GridAffinityProcessor#affMap has the same size and instance set as #affCache. + ctx.affinity().removeCachedAffinity(aff0.topologyVersion()); - fullHistSize.decrementAndGet(); + return; + } + + nonShallowSize--; } - linksRmvCnt--; + totalSize--; it.remove(); - - topVerRmv = aff0.topologyVersion(); } - topVerRmv = it.hasNext() ? it.next().topologyVersion() : topVerRmv; - - ctx.affinity().removeCachedAffinity(topVerRmv); + assert false : "All elements have been removed from affinity cache during cleanup"; } } /** + * Checks whether affinity cache size conditions are still unsatisfied. + * + * @param nonShallowSize Non shallow size. + * @param totalSize Total size. + * @return <code>true</code> if affinity cache cleanup is not finished yet. + */ + private boolean shouldContinueCleanup(int nonShallowSize, int totalSize) { + if (nonShallowSize <= MIN_NON_SHALLOW_HIST_SIZE) + return false; + + return nonShallowSize > MAX_NON_SHALLOW_HIST_SIZE || totalSize > MAX_TOTAL_HIST_SIZE; + } + + /** * @return All initialized versions. */ public Collection<AffinityTopologyVersion> cachedVersions() { diff --git a/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityHistoryCleanupTest.java b/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityHistoryCleanupTest.java index cdee5eb..44de7d3 100644 --- a/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityHistoryCleanupTest.java +++ b/modules/core/src/test/java/org/apache/ignite/cache/affinity/AffinityHistoryCleanupTest.java @@ -102,8 +102,8 @@ public class AffinityHistoryCleanupTest extends GridCommonAbstractTest { topVer(2, 1), // FullHistSize = 3. topVer(3, 0), // FullHistSize = 4. topVer(3, 1), // FullHistSize = 5. - topVer(4, 0), // FullHistSize = (6 - IGNITE_AFFINITY_HISTORY_SIZE(5)/2) = 4. - topVer(4, 1)), // FullHistSize = 5. + topVer(4, 0), // FullHistSize = 6 - 1 = 5. + topVer(4, 1)), // FullHistSize = 6 - 1 = 5. 5); startClientGrid(4); @@ -114,10 +114,10 @@ public class AffinityHistoryCleanupTest extends GridCommonAbstractTest { topVer(2, 1), // FullHistSize = 3. topVer(3, 0), // FullHistSize = 4. topVer(3, 1), // FullHistSize = 5. - topVer(4, 0), // FullHistSize = (6 - IGNITE_AFFINITY_HISTORY_SIZE(5)/2) = 4. - topVer(4, 1), // FullHistSize = 5. - topVer(5, 0), // Client event ->FullHistSize = 5. - topVer(6, 0)), // Client event ->FullHistSize = 5. + topVer(4, 0), // FullHistSize = 6 - 1 = 5. + topVer(4, 1), // FullHistSize = 6 - 1 = 5. + topVer(5, 0), // Client event -> FullHistSize = 5. + topVer(6, 0)), // Client event -> FullHistSize = 5. 5); startClientGrid(4); @@ -126,14 +126,14 @@ public class AffinityHistoryCleanupTest extends GridCommonAbstractTest { checkHistory(ignite, F.asList( topVer(2, 1), // FullHistSize = 3. - topVer(3, 0), // FullHistSize =4. + topVer(3, 0), // FullHistSize = 4. topVer(3, 1), // FullHistSize = 5. - topVer(4, 0), // FullHistSize = (6 - IGNITE_AFFINITY_HISTORY_SIZE(5)/2) = 4. - topVer(4, 1), // FullHistSize = 5. + topVer(4, 0), // FullHistSize = 6 - 1 = 5. + topVer(4, 1), // FullHistSize = 6 - 1 = 5. topVer(5, 0), // Client event -> FullHistSize = 5. topVer(6, 0), // Client event -> FullHistSize = 5. topVer(7, 0), // Client event -> FullHistSize = 5. - topVer(8, 0)), // Client event ->FullHistSize = 5. + topVer(8, 0)), // Client event -> FullHistSize = 5. 5); startClientGrid(4); @@ -143,31 +143,31 @@ public class AffinityHistoryCleanupTest extends GridCommonAbstractTest { checkHistory(ignite, F.asList( topVer(2, 1), // FullHistSize = 3. topVer(3, 0), // FullHistSize = 4. - topVer(3, 1), // FullHistSize =5. - topVer(4, 0), // FullHistSize = (6 - IGNITE_AFFINITY_HISTORY_SIZE(5)/2) = 4. - topVer(4, 1), // FullHistSize = 5. + topVer(3, 1), // FullHistSize = 5. + topVer(4, 0), // FullHistSize = 6 - 1 = 5. + topVer(4, 1), // FullHistSize = 6 - 1 = 5. topVer(5, 0), // Client event -> FullHistSize = 5. topVer(6, 0), // Client event -> FullHistSize = 5. topVer(7, 0), // Client event -> FullHistSize = 5. topVer(8, 0), // Client event -> FullHistSize = 5. topVer(9, 0), // Client event -> FullHistSize = 5. - topVer(10, 0)), // Client event ->FullHistSize = 5. + topVer(10, 0)), // Client event -> FullHistSize = 5. 5); startGrid(4); checkHistory(ignite, F.asList( topVer(3, 1), // FullHistSize = 5. - topVer(4, 0), // FullHistSize = (6 - IGNITE_AFFINITY_HISTORY_SIZE(5)/2) = 4. - topVer(4, 1), // FullHistSize = 5. + topVer(4, 0), // FullHistSize = 6 - 1 = 5. + topVer(4, 1), // FullHistSize = 6 - 1 = 5. topVer(5, 0), // Client event -> FullHistSize = 5. topVer(6, 0), // Client event -> FullHistSize = 5. topVer(7, 0), // Client event -> FullHistSize = 5. topVer(8, 0), // Client event -> FullHistSize = 5. topVer(9, 0), // Client event -> FullHistSize = 5. topVer(10, 0), // Client event -> FullHistSize = 5. - topVer(11, 0), // FullHistSize = (6 - IGNITE_AFFINITY_HISTORY_SIZE(5)/2) = 4. - topVer(11, 1)), // FullHistSize = 5. + topVer(11, 0), // FullHistSize = 6 - 1 = 5. + topVer(11, 1)), // FullHistSize = 6 - 1 = 5. 5); stopGrid(4); @@ -175,11 +175,12 @@ public class AffinityHistoryCleanupTest extends GridCommonAbstractTest { startGrid(4); checkHistory(ignite, F.asList( + topVer(11, 0), // FullHistSize = 5. topVer(11, 1), // FullHistSize = 5. - topVer(12, 0), // FullHistSize = (6 - IGNITE_AFFINITY_HISTORY_SIZE(5)/2) = 4. + topVer(12, 0), // FullHistSize = 6 - 1 = 5. topVer(13, 0), // FullHistSize = 5. - topVer(13, 1)), // FullHistSize = (6 - IGNITE_AFFINITY_HISTORY_SIZE(5)/2) = 4. - 4); + topVer(13, 1)), // FullHistSize = 6 - 1 = 5. + 5); } /** @@ -198,7 +199,7 @@ public class AffinityHistoryCleanupTest extends GridCommonAbstractTest { for (GridCacheContext cctx : proc.context().cacheContexts()) { GridAffinityAssignmentCache aff = GridTestUtils.getFieldValue(cctx.affinity(), "aff"); - AtomicInteger fullHistSize = GridTestUtils.getFieldValue(aff, "fullHistSize"); + AtomicInteger fullHistSize = GridTestUtils.getFieldValue(aff, "nonShallowHistSize"); assertEquals(expSize, fullHistSize.get()); diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/affinity/GridAffinityProcessorMemoryLeakTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/affinity/GridAffinityProcessorMemoryLeakTest.java deleted file mode 100644 index 1bb309f..0000000 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/affinity/GridAffinityProcessorMemoryLeakTest.java +++ /dev/null @@ -1,194 +0,0 @@ -/* - * 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.affinity; - -import java.util.concurrent.ConcurrentSkipListMap; -import org.apache.ignite.Ignite; -import org.apache.ignite.IgniteCache; -import org.apache.ignite.IgniteDataStreamer; -import org.apache.ignite.IgniteSystemProperties; -import org.apache.ignite.cache.CacheMode; -import org.apache.ignite.configuration.CacheConfiguration; -import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.internal.IgniteKernal; -import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; -import org.apache.ignite.testframework.GridTestUtils; -import org.apache.ignite.testframework.junits.WithSystemProperty; -import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; -import org.apache.ignite.testframework.junits.common.GridCommonTest; -import org.junit.Test; - -/** - * Tests for {@link GridAffinityProcessor}. - */ -@GridCommonTest(group = "Affinity Processor") -public class GridAffinityProcessorMemoryLeakTest extends GridCommonAbstractTest { - /** Cache name. */ - private static final String CACHE_NAME = "cache"; - - /** {@inheritDoc} */ - @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); - - ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setForceServerMode(true); - - CacheConfiguration cacheCfg = defaultCacheConfiguration(); - - cacheCfg.setName(CACHE_NAME); - - cacheCfg.setStoreKeepBinary(true); - - cacheCfg.setCacheMode(CacheMode.LOCAL); - - cfg.setCacheConfiguration(cacheCfg); - - return cfg; - } - - /** {@inheritDoc} */ - @Override protected void afterTestsStopped() throws Exception { - stopAllGrids(); - } - - /** - * Test affinity functions caching and clean up. - * - * @throws Exception In case of any exception. - */ - @Test - @WithSystemProperty(key = IgniteSystemProperties.IGNITE_AFFINITY_HISTORY_SIZE, value = "10") - public void testAffinityProcessor() throws Exception { - int maxHistSize = 10; - - Ignite ignite = startGrid(0); - - IgniteKernal grid = (IgniteKernal)grid(0); - - IgniteCache<String, String> cache; - - IgniteCache<String, String> globalCache = getOrCreateGlobalCache(ignite); - - IgniteDataStreamer<String, String> globalStreamer; - - int cnt = maxHistSize * 30; - - int expLimit = cnt / 2; - - int size; - - do { - try { - cache = createLocalCache(ignite, cnt); - - cache.put("Key" + cnt, "Value" + cnt); - - cache.destroy(); - - globalStreamer = createGlobalStreamer(ignite, globalCache); - - globalStreamer.addData("GlobalKey" + cnt, "GlobalValue" + cnt); - - globalStreamer.flush(); - - globalStreamer.close(); - - size = ((ConcurrentSkipListMap)GridTestUtils.getFieldValue(grid.context().affinity(), "affMap")).size(); - - assertTrue("Cache has size that bigger then expected [size=" + size + - ", expLimit=" + expLimit + "]", size < expLimit); - } - catch (Exception e) { - fail("Error was handled [" + e.getMessage() + "]"); - } - } - while (cnt-- > 0); - } - - /** - * Creates global cache. - * - * @param ignite instance of {@code Ignite}. - * @param id unique id for local cache. - * @return local cache instance. - */ - private static IgniteCache<String, String> createLocalCache(Ignite ignite, long id) { - final String cacheName = "localCache" + id; - - final CacheConfiguration<String, String> cCfg = new CacheConfiguration<>(); - - cCfg.setName(cacheName); - - cCfg.setCacheMode(CacheMode.LOCAL); - - cCfg.setGroupName("some group"); - - ignite.destroyCache(cacheName); // Local cache is not really local - reference can be kept by other nodes if restart during the load happens. - - return ignite.createCache(cCfg).withKeepBinary(); - } - - /** - * Gets or creates global cache. - * - * @param ignite instance of {@code Ignite}. - * @return global cache instance. - */ - private static IgniteCache<String, String> getOrCreateGlobalCache(Ignite ignite) { - final String cacheName = "GlobalCache"; - - final CacheConfiguration<String, String> cCfg = new CacheConfiguration<>(); - - cCfg.setName(cacheName); - - cCfg.setStoreKeepBinary(true); - - cCfg.setCacheMode(CacheMode.PARTITIONED); - - cCfg.setOnheapCacheEnabled(false); - - cCfg.setCopyOnRead(false); - - cCfg.setBackups(0); - - cCfg.setWriteBehindEnabled(false); - - cCfg.setReadThrough(false); - - return ignite.getOrCreateCache(cCfg).withKeepBinary(); - } - - /** - * Creates streamer for global cache. - * - * @param ignite instance of {@code Ignite}. - * @param cache instance of global cache. - * @return instance of {@code IgniteDataStreamer}. - */ - private static IgniteDataStreamer<String, String> createGlobalStreamer(Ignite ignite, - IgniteCache<String, String> cache) { - IgniteDataStreamer<String, String> streamer = ignite.dataStreamer(cache.getName()); - - streamer.allowOverwrite(true); - - streamer.skipStore(true); - - streamer.keepBinary(false); - - return streamer; - } -} diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java index bd3fead..879e02b 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheNoAffinityExchangeTest.java @@ -310,13 +310,33 @@ public class CacheNoAffinityExchangeTest extends GridCommonAbstractTest { } /** - * Tests that multiple client events won't fail transactions due to affinity assignment history expiration. + * Checks case when number of client events is greater than affinity history size. * * @throws Exception If failed. */ @Test @WithSystemProperty(key = IgniteSystemProperties.IGNITE_AFFINITY_HISTORY_SIZE, value = "10") public void testMulipleClientLeaveJoin() throws Exception { + doTestMulipleClientLeaveJoin(); + } + + /** + * Checks case when number of client events is so big that history consists only from client event versions. + * + * @throws Exception If failed. + */ + @Test + @WithSystemProperty(key = IgniteSystemProperties.IGNITE_AFFINITY_HISTORY_SIZE, value = "2") + public void testMulipleClientLeaveJoinLinksLimitOverflow() throws Exception { + doTestMulipleClientLeaveJoin(); + } + + /** + * Tests that multiple client events won't fail transactions due to affinity assignment history expiration. + * + * @throws Exception If failed. + */ + public void doTestMulipleClientLeaveJoin() throws Exception { Ignite ig = startGrids(2); ig.cluster().active(true); diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java index 6d3a685..5dbdea7 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java @@ -19,8 +19,6 @@ package org.apache.ignite.testsuites; import org.apache.ignite.ClassPathContentLoggingTest; import org.apache.ignite.GridSuppressedExceptionSelfTest; -import org.apache.ignite.internal.processors.cache.distributed.dht.topology.EvictPartitionInLogTest; -import org.apache.ignite.internal.processors.failure.FailureProcessorLoggingTest; import org.apache.ignite.failure.FailureHandlerTriggeredTest; import org.apache.ignite.failure.OomFailureHandlerTest; import org.apache.ignite.failure.StopNodeFailureHandlerTest; @@ -56,7 +54,6 @@ import org.apache.ignite.internal.pagemem.wal.record.WALRecordTest; import org.apache.ignite.internal.processors.DeadLockOnNodeLeftExchangeTest; import org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentV2Test; import org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentV2TestNoOptimizations; -import org.apache.ignite.internal.processors.affinity.GridAffinityProcessorMemoryLeakTest; import org.apache.ignite.internal.processors.affinity.GridAffinityProcessorRendezvousSelfTest; import org.apache.ignite.internal.processors.affinity.GridHistoryAffinityAssignmentTest; import org.apache.ignite.internal.processors.affinity.GridHistoryAffinityAssignmentTestNoOptimization; @@ -72,6 +69,7 @@ import org.apache.ignite.internal.processors.cache.RebalanceWithDifferentThreadP import org.apache.ignite.internal.processors.cache.SetTxTimeoutOnPartitionMapExchangeTest; import org.apache.ignite.internal.processors.cache.distributed.IgniteRejectConnectOnNodeStopTest; import org.apache.ignite.internal.processors.cache.distributed.dht.topology.DropCacheContextDuringEvictionTest; +import org.apache.ignite.internal.processors.cache.distributed.dht.topology.EvictPartitionInLogTest; import org.apache.ignite.internal.processors.cache.distributed.dht.topology.PartitionsEvictionTaskFailureHandlerTest; import org.apache.ignite.internal.processors.cache.persistence.pagemem.PagePoolTest; import org.apache.ignite.internal.processors.cache.query.continuous.DiscoveryDataDeserializationFailureHanderTest; @@ -91,6 +89,7 @@ import org.apache.ignite.internal.processors.database.CacheFreeListSelfTest; import org.apache.ignite.internal.processors.database.DataRegionMetricsSelfTest; import org.apache.ignite.internal.processors.database.IndexStorageSelfTest; import org.apache.ignite.internal.processors.database.SwapPathConstructionSelfTest; +import org.apache.ignite.internal.processors.failure.FailureProcessorLoggingTest; import org.apache.ignite.internal.processors.failure.FailureProcessorThreadDumpThrottlingTest; import org.apache.ignite.internal.processors.metastorage.DistributedMetaStorageTest; import org.apache.ignite.internal.processors.metastorage.persistence.DistributedMetaStorageHistoryCacheTest; @@ -99,9 +98,9 @@ import org.apache.ignite.internal.processors.metastorage.persistence.InMemoryCac import org.apache.ignite.internal.processors.odbc.OdbcConfigurationValidationSelfTest; import org.apache.ignite.internal.processors.odbc.OdbcEscapeSequenceSelfTest; import org.apache.ignite.internal.product.GridProductVersionSelfTest; +import org.apache.ignite.internal.util.GridCleanerTest; import org.apache.ignite.internal.util.collection.BitSetIntSetTest; import org.apache.ignite.internal.util.collection.ImmutableIntSetTest; -import org.apache.ignite.internal.util.GridCleanerTest; import org.apache.ignite.internal.util.collection.IntHashMapTest; import org.apache.ignite.internal.util.collection.IntRWHashMapTest; import org.apache.ignite.internal.util.nio.IgniteExceptionInNioWorkerSelfTest; @@ -160,7 +159,6 @@ import org.junit.runners.Suite; GridHistoryAffinityAssignmentTest.class, GridHistoryAffinityAssignmentTestNoOptimization.class, GridAffinityProcessorRendezvousSelfTest.class, - GridAffinityProcessorMemoryLeakTest.class, GridClosureProcessorSelfTest.class, GridClosureProcessorRemoteTest.class, GridClosureSerializationTest.class,