Repository: ignite Updated Branches: refs/heads/ignite-5872 ee6f76965 -> cfbd3275d
IGNITETE-5872 - Fixing tests Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/cfbd3275 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/cfbd3275 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/cfbd3275 Branch: refs/heads/ignite-5872 Commit: cfbd3275d8d760a82a9fc3b7a4a8759bdcedfc4f Parents: ee6f769 Author: Alexey Goncharuk <alexey.goncha...@gmail.com> Authored: Tue Aug 8 12:24:11 2017 +0300 Committer: Alexey Goncharuk <alexey.goncha...@gmail.com> Committed: Tue Aug 8 12:24:11 2017 +0300 ---------------------------------------------------------------------- .../cache/GridCachePartitionExchangeManager.java | 19 +++++++++++-------- .../dht/GridClientPartitionTopology.java | 2 +- .../dht/GridDhtPartitionTopology.java | 2 +- .../dht/GridDhtPartitionTopologyImpl.java | 6 ++++-- .../CachePartitionPartialCountersMap.java | 12 ++++++++++++ .../GridDhtPartitionsExchangeFuture.java | 3 ++- .../continuous/GridContinuousProcessor.java | 4 ++-- .../schema/SchemaIndexCacheVisitorImpl.java | 7 +++++++ ...eContinuousQueryFailoverAbstractSelfTest.java | 3 ++- .../ignite/testsuites/IgniteBasicTestSuite.java | 3 +-- 10 files changed, 43 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java index 12b313a..27fda14 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java @@ -670,7 +670,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana CacheGroupDescriptor grpDesc = cctx.cache().cacheGroupDescriptors().get(grpId); - assert grpDesc != null; + assert grpDesc != null: "Failed for exchange: " + exchFut; CacheConfiguration<?, ?> ccfg = grpDesc.config(); @@ -1077,7 +1077,8 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana GridDhtPartitionsSingleMessage m = createPartitionsSingleMessage(node, id, cctx.kernalContext().clientNode(), - false); + false, + null); if (log.isDebugEnabled()) log.debug("Sending local partitions [nodeId=" + node.id() + ", msg=" + m + ']'); @@ -1102,11 +1103,13 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana * @param sndCounters {@code True} if need send partition update counters. * @return Message. */ - public GridDhtPartitionsSingleMessage createPartitionsSingleMessage(ClusterNode targetNode, + public GridDhtPartitionsSingleMessage createPartitionsSingleMessage( + ClusterNode targetNode, @Nullable GridDhtPartitionExchangeId exchangeId, boolean clientOnlyExchange, - boolean sndCounters) - { + boolean sndCounters, + ExchangeActions exchActions + ) { GridDhtPartitionsSingleMessage m = new GridDhtPartitionsSingleMessage(exchangeId, clientOnlyExchange, cctx.versions().last(), @@ -1115,7 +1118,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana Map<Object, T2<Integer, GridPartitionStateMap>> dupData = new HashMap<>(); for (CacheGroupContext grp : cctx.cache().cacheGroups()) { - if (!grp.isLocal()) { + if (!grp.isLocal() && (exchActions == null || !exchActions.cacheGroupStopping(grp.groupId()))) { GridDhtPartitionMap locMap = grp.topology().localPartitionMap(); addPartitionMap(m, @@ -1126,7 +1129,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana grp.affinity().similarAffinityKey()); if (sndCounters) - m.partitionUpdateCounters(grp.groupId(), grp.topology().localUpdateCounters()); + m.partitionUpdateCounters(grp.groupId(), grp.topology().localUpdateCounters(true)); } } @@ -1144,7 +1147,7 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana top.similarAffinityKey()); if (sndCounters) - m.partitionUpdateCounters(top.groupId(), top.localUpdateCounters()); + m.partitionUpdateCounters(top.groupId(), top.localUpdateCounters(true)); } return m; http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java index 6448f69..f844e19 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridClientPartitionTopology.java @@ -1070,7 +1070,7 @@ public class GridClientPartitionTopology implements GridDhtPartitionTopology { } /** {@inheritDoc} */ - @Override public CachePartitionPartialCountersMap localUpdateCounters() { + @Override public CachePartitionPartialCountersMap localUpdateCounters(boolean skipZeros) { return CachePartitionPartialCountersMap.EMPTY; } http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java index bab9030..4608977 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopology.java @@ -310,7 +310,7 @@ public interface GridDhtPartitionTopology { /** * @return Partition update counters. */ - public CachePartitionPartialCountersMap localUpdateCounters(); + public CachePartitionPartialCountersMap localUpdateCounters(boolean skipZeros); /** * @param part Partition to own. http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java index ff6bf7f..84ae9af 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtPartitionTopologyImpl.java @@ -2073,7 +2073,7 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology { } /** {@inheritDoc} */ - @Override public CachePartitionPartialCountersMap localUpdateCounters() { + @Override public CachePartitionPartialCountersMap localUpdateCounters(boolean skipZeros) { lock.readLock().lock(); try { @@ -2097,12 +2097,14 @@ public class GridDhtPartitionTopologyImpl implements GridDhtPartitionTopology { long updCntr = part.updateCounter(); long initCntr = part.initialUpdateCounter(); - if (initCntr == 0L && updCntr == 0L) + if (skipZeros && initCntr == 0L && updCntr == 0L) continue; res.add(part.id(), initCntr, updCntr); } + res.trim(); + return res; } finally { http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionPartialCountersMap.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionPartialCountersMap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionPartialCountersMap.java index 8cbdc77..851ffed 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionPartialCountersMap.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/CachePartitionPartialCountersMap.java @@ -92,6 +92,18 @@ public class CachePartitionPartialCountersMap implements Serializable { } /** + * Cuts the array sizes according to curIdx. No more entries can be added to this map + * after this method is called. + */ + public void trim() { + if (curIdx < partIds.length) { + partIds = Arrays.copyOf(partIds, curIdx); + initialUpdCntrs = Arrays.copyOf(initialUpdCntrs, curIdx); + updCntrs = Arrays.copyOf(updCntrs, curIdx); + } + } + + /** * @param partId Partition ID to search. * @return Partition index in the array. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/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 53532ab..8530a23 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 @@ -1132,7 +1132,8 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte msg = cctx.exchange().createPartitionsSingleMessage(node, exchangeId(), false, - true); + true, + exchActions); } Map<Integer, Map<Integer, Long>> partHistReserved0 = partHistReserved; http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java index be958c7..fa52be2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java @@ -204,7 +204,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter { if (cctx != null && cntrsPerNode != null && !cctx.isLocal() && cctx.affinityNode()) cntrsPerNode.put(ctx.localNodeId(), - toCountersMap(cctx.topology().localUpdateCounters())); + toCountersMap(cctx.topology().localUpdateCounters(false))); routine.handler().updateCounters(topVer, cntrsPerNode, cntrs); } @@ -1073,7 +1073,7 @@ public class GridContinuousProcessor extends GridProcessorAdapter { if (cache != null && !cache.isLocal() && cache.context().userCache()) req.addUpdateCounters(ctx.localNodeId(), - toCountersMap(cache.context().topology().localUpdateCounters())); + toCountersMap(cache.context().topology().localUpdateCounters(false))); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/SchemaIndexCacheVisitorImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/SchemaIndexCacheVisitorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/SchemaIndexCacheVisitorImpl.java index 3a445bf..4e50f64 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/SchemaIndexCacheVisitorImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/schema/SchemaIndexCacheVisitorImpl.java @@ -24,6 +24,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.GridCacheEntryEx; import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException; import org.apache.ignite.internal.processors.cache.KeyCacheObject; +import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException; import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow; import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtLocalPartition; import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheAdapter; @@ -118,6 +119,9 @@ public class SchemaIndexCacheVisitorImpl implements SchemaIndexCacheVisitor { KeyCacheObject key = row.key(); processKey(key, row.link(), clo); + + if (part.state() == RENTING) + break; } } finally { @@ -149,6 +153,9 @@ public class SchemaIndexCacheVisitorImpl implements SchemaIndexCacheVisitor { break; } + catch (GridDhtInvalidPartitionException ignore) { + break; + } catch (GridCacheEntryRemovedException ignored) { // No-op. } http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java index 39c31ad..f91c689 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryFailoverAbstractSelfTest.java @@ -520,7 +520,8 @@ public abstract class CacheContinuousQueryFailoverAbstractSelfTest extends GridC Affinity<Object> aff = grid(i).affinity(DEFAULT_CACHE_NAME); - CachePartitionPartialCountersMap act = grid(i).cachex(DEFAULT_CACHE_NAME).context().topology().localUpdateCounters(); + CachePartitionPartialCountersMap act = grid(i).cachex(DEFAULT_CACHE_NAME).context().topology() + .localUpdateCounters(false); for (Map.Entry<Integer, Long> e : updCntrs.entrySet()) { if (aff.mapPartitionToPrimaryAndBackups(e.getKey()).contains(grid(i).localNode())) { http://git-wip-us.apache.org/repos/asf/ignite/blob/cfbd3275/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java ---------------------------------------------------------------------- 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 2ec2c74..202486c 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 @@ -20,8 +20,6 @@ package org.apache.ignite.testsuites; import java.util.Set; import junit.framework.TestSuite; import org.apache.ignite.GridSuppressedExceptionSelfTest; -import org.apache.ignite.internal.processors.database.SwapPathConstructionSelfTest; -import org.apache.ignite.util.AttributeNodeFilterSelfTest; import org.apache.ignite.internal.ClusterGroupHostsSelfTest; import org.apache.ignite.internal.ClusterGroupSelfTest; import org.apache.ignite.internal.GridFailFastNodeFailureDetectionSelfTest; @@ -57,6 +55,7 @@ import org.apache.ignite.internal.processors.database.BPlusTreeSelfTest; import org.apache.ignite.internal.processors.database.FreeListImplSelfTest; import org.apache.ignite.internal.processors.database.MemoryMetricsSelfTest; import org.apache.ignite.internal.processors.database.MetadataStorageSelfTest; +import org.apache.ignite.internal.processors.database.SwapPathConstructionSelfTest; import org.apache.ignite.internal.processors.odbc.OdbcConfigurationValidationSelfTest; import org.apache.ignite.internal.processors.odbc.OdbcEscapeSequenceSelfTest; import org.apache.ignite.internal.processors.service.ClosureServiceClientsNodesTest;