[ignite] branch master updated: IGNITE-5227 StackOverflowError in GridCacheMapEntry#checkOwnerChanged() - Fixes #6736.
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 b6dbc9e IGNITE-5227 StackOverflowError in GridCacheMapEntry#checkOwnerChanged() - Fixes #6736. b6dbc9e is described below commit b6dbc9e781de9001c68007d9853938e85b217b87 Author: mstepachev AuthorDate: Thu Aug 1 19:47:08 2019 +0300 IGNITE-5227 StackOverflowError in GridCacheMapEntry#checkOwnerChanged() - Fixes #6736. Signed-off-by: Ivan Rakov --- .../processors/cache/GridCacheMapEntry.java| 16 ++- .../distributed/GridDistributedCacheEntry.java | 18 ++- .../cache/local/GridLocalCacheEntry.java | 19 ++- .../cache/CacheLockCandidatesThreadTest.java | 133 + 4 files changed, 173 insertions(+), 13 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java index f1b7ec7..194c97a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java @@ -4865,6 +4865,19 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme protected final void checkOwnerChanged(@Nullable CacheLockCandidates prevOwners, @Nullable CacheLockCandidates owners, CacheObject val) { +checkOwnerChanged(prevOwners, owners, val, null); +} + +/** + * @param prevOwners Previous owners. + * @param owners Current owners. + * @param val Entry value. + * @param checkingCandidate flag to enable or disable check of candidate chain + */ +protected final void checkOwnerChanged(@Nullable CacheLockCandidates prevOwners, +@Nullable CacheLockCandidates owners, +CacheObject val, +CacheLockCandidates checkingCandidate) { assert !lock.isHeldByCurrentThread(); if (prevOwners != null && owners == null) { @@ -4900,7 +4913,8 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme if (locked) { cctx.mvcc().callback().onOwnerChanged(this, owner); -if (owner.local()) +if (owner.local() +&& (checkingCandidate == null || !checkingCandidate.hasCandidate(owner.version( checkThreadChain(owner); if (cctx.events().isRecordable(EVT_CACHE_OBJECT_LOCKED)) { diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java index 9b1d0ca..51245e8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java @@ -642,7 +642,7 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry { /** * Rechecks if lock should be reassigned. */ -public void recheck() { +public CacheLockCandidates recheck(GridCacheMvccCandidate checkingCandidate) { CacheLockCandidates prev = null; CacheLockCandidates owner = null; @@ -675,7 +675,9 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry { } // This call must be made outside of synchronization. -checkOwnerChanged(prev, owner, val); +checkOwnerChanged(prev, owner, val, checkingCandidate); + +return owner; } /** {@inheritDoc} */ @@ -753,10 +755,14 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry { GridDistributedCacheEntry e = (GridDistributedCacheEntry)cctx0.cache().peekEx(cand.parent().key()); -if (e != null) -e.recheck(); - -break; +if (e != null) { +CacheLockCandidates newOnwer = e.recheck(owner); +if(newOnwer == null || !newOnwer.hasCandidate(cand.version())) +// the lock from the chain hasn't been acquired, no sense to check the rest of the chain +break; +} +else +break; } } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalCacheEntry.java
[ignite] branch master updated: IGNITE-12028 [IEP-35] HitRateMetric should provide rateTimeInterval value to metrics exporter (#6739)
This is an automated email from the ASF dual-hosted git repository. nizhikov 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 736c133 IGNITE-12028 [IEP-35] HitRateMetric should provide rateTimeInterval value to metrics exporter (#6739) 736c133 is described below commit 736c133a5516a31eeea0842dc9869ca319f640e1 Author: Nikita Amelchev AuthorDate: Thu Aug 1 19:44:24 2019 +0300 IGNITE-12028 [IEP-35] HitRateMetric should provide rateTimeInterval value to metrics exporter (#6739) A public method added. --- .../processors/metric/impl/HitRateMetric.java | 7 +++- .../ignite/internal/metric/MetricsSelfTest.java| 39 ++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HitRateMetric.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HitRateMetric.java index 44381c2..f77fdb6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HitRateMetric.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/impl/HitRateMetric.java @@ -40,7 +40,7 @@ public class HitRateMetric extends AbstractMetric implements LongMetric { /** * @param name Name. * @param desc Description. - * @param rateTimeInterval Rate time interval. + * @param rateTimeInterval Rate time interval in milliseconds. * @param size Counters array size. */ public HitRateMetric(String name, @Nullable String desc, long rateTimeInterval, int size) { @@ -83,6 +83,11 @@ public class HitRateMetric extends AbstractMetric implements LongMetric { return cntr.value(); } +/** @return Rate time interval in milliseconds. */ +public long rateTimeInterval() { +return cntr.rateTimeInterval; +} + /** * Actual metric. * diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java index fa0bb7d..4f32db1 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java @@ -25,32 +25,31 @@ import java.util.Spliterators; import java.util.stream.StreamSupport; import org.apache.ignite.internal.IgniteInternalFuture; import org.apache.ignite.internal.processors.metric.MetricRegistry; +import org.apache.ignite.internal.processors.metric.impl.AtomicLongMetric; import org.apache.ignite.internal.processors.metric.impl.BooleanMetricImpl; import org.apache.ignite.internal.processors.metric.impl.DoubleMetricImpl; import org.apache.ignite.internal.processors.metric.impl.HistogramMetric; +import org.apache.ignite.internal.processors.metric.impl.HitRateMetric; import org.apache.ignite.internal.processors.metric.impl.IntMetricImpl; import org.apache.ignite.internal.processors.metric.impl.LongAdderMetric; -import org.apache.ignite.internal.processors.metric.impl.AtomicLongMetric; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.spi.metric.BooleanMetric; import org.apache.ignite.spi.metric.DoubleMetric; import org.apache.ignite.spi.metric.IntMetric; import org.apache.ignite.spi.metric.LongMetric; import org.apache.ignite.spi.metric.Metric; import org.apache.ignite.spi.metric.ObjectMetric; +import org.apache.ignite.testframework.GridTestUtils; +import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.junit.Before; import org.junit.Test; import static java.util.Arrays.asList; import static java.util.stream.Collectors.toSet; -import static junit.framework.TestCase.assertNull; -import static junit.framework.TestCase.assertTrue; import static org.apache.ignite.testframework.GridTestUtils.runAsync; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; /** */ -public class MetricsSelfTest { +public class MetricsSelfTest extends GridCommonAbstractTest { /** */ private MetricRegistry mreg; @@ -310,6 +309,32 @@ public class MetricsSelfTest { } /** */ +@Test +public void testHitRateMetric() throws Exception { +long rateTimeInterval = 500; + +HitRateMetric metric = mreg.hitRateMetric("testHitRate", null, rateTimeInterval, 10); + +assertEquals(0, metric.value()); + +long startTs = U.currentTimeMillis(); + +GridTestUtils.runMultiThreaded(metric::increment, 10, "test-thread"); + +assertTrue(metric.value() > 0 || U.currentTimeMillis() - startTs > rateTimeInterval); + +U.sleep(rateTimeInterval * 2); + +assertEquals(0, metric.value()); + +
[ignite] branch master updated: IGNITE-11924: Migrate TransactionMetricsMxBean (#6733)
This is an automated email from the ASF dual-hosted git repository. nizhikov 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 0bb7c17 IGNITE-11924: Migrate TransactionMetricsMxBean (#6733) 0bb7c17 is described below commit 0bb7c170cc0faf41e69d5bbef9e1fbac80a933e2 Author: Nikita Amelchev AuthorDate: Thu Aug 1 19:13:07 2019 +0300 IGNITE-11924: Migrate TransactionMetricsMxBean (#6733) Metrics migration. --- .../internal/TransactionMetricsMxBeanImpl.java | 4 + .../wal/reader/StandaloneGridKernalContext.java| 10 +- .../cache/transactions/IgniteTransactionsImpl.java | 2 +- .../transactions/TransactionMetricsAdapter.java| 196 - .../processors/metric/GridMetricManager.java | 3 + .../processors/metric/impl/IntMetricImpl.java | 5 + .../ignite/mxbean/TransactionMetricsMxBean.java| 4 + .../ignite/transactions/TransactionMetrics.java| 3 +- ...anImplTest.java => TransactionMetricsTest.java} | 37 ++-- .../db/wal/IgniteWalIteratorSwitchSegmentTest.java | 7 - .../IgniteCacheMetricsSelfTestSuite.java | 4 +- 11 files changed, 207 insertions(+), 68 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/TransactionMetricsMxBeanImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/TransactionMetricsMxBeanImpl.java index 58b5867..e1deb50 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/TransactionMetricsMxBeanImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/TransactionMetricsMxBeanImpl.java @@ -18,12 +18,16 @@ package org.apache.ignite.internal; import java.util.Map; +import org.apache.ignite.internal.processors.metric.GridMetricManager; import org.apache.ignite.mxbean.TransactionMetricsMxBean; import org.apache.ignite.transactions.TransactionMetrics; /** * Transactions MXBean implementation. + * + * @deprecated Use {@link GridMetricManager} instead. */ +@Deprecated public class TransactionMetricsMxBeanImpl implements TransactionMetricsMxBean { /** */ private static final long serialVersionUID = 0L; diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneGridKernalContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneGridKernalContext.java index 0a25f1c..468d603 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneGridKernalContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneGridKernalContext.java @@ -98,6 +98,7 @@ import org.apache.ignite.internal.worker.WorkersRegistry; import org.apache.ignite.marshaller.Marshaller; import org.apache.ignite.plugin.PluginNotFoundException; import org.apache.ignite.plugin.PluginProvider; +import org.apache.ignite.spi.metric.noop.NoopMetricExporterSpi; import org.apache.ignite.thread.IgniteStripedThreadPoolExecutor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -118,6 +119,9 @@ public class StandaloneGridKernalContext implements GridKernalContext { /** Empty plugin processor. */ private IgnitePluginProcessor pluginProc; +/** Metrics manager. */ +private final GridMetricManager metricMgr; + /** * Cache object processor. Used for converting cache objects and keys into binary objects. Null means there is no * convert is configured. All entries in this case will be lazy data entries. @@ -163,6 +167,8 @@ public class StandaloneGridKernalContext implements GridKernalContext { marshallerCtx.setMarshallerMappingFileStoreDir(marshallerMappingFileStoreDir); marshallerCtx.onMarshallerProcessorStarted(this, null); } + +metricMgr = new GridMetricManager(this); } /** @@ -207,6 +213,8 @@ public class StandaloneGridKernalContext implements GridKernalContext { marshaller.setContext(marshallerCtx); +cfg.setMetricExporterSpi(new NoopMetricExporterSpi()); + return cfg; } @@ -296,7 +304,7 @@ public class StandaloneGridKernalContext implements GridKernalContext { /** {@inheritDoc} */ @Override public GridMetricManager metric() { -return null; +return metricMgr; } /** {@inheritDoc} */ diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTransactionsImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTransactionsImpl.java index 5d2686c..2a7999f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTransactionsImpl.java +++
[ignite-teamcity-bot] branch master updated: Tracked branch list now contains number of suites running and queued
This is an automated email from the ASF dual-hosted git repository. dpavlov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git The following commit(s) were added to refs/heads/master by this push: new 3f55641 Tracked branch list now contains number of suites running and queued 3f55641 is described below commit 3f55641bb2aabc0e4f77455ede46c4efa664c9f7 Author: Dmitriy Pavlov AuthorDate: Thu Aug 1 18:05:11 2019 +0300 Tracked branch list now contains number of suites running and queued --- .../org/apache/ignite/ci/web/model/Version.java| 2 +- .../rest/tracked/GetTrackedBranchTestResults.java | 17 ++ ignite-tc-helper-web/src/main/webapp/guard.html| 35 + .../tracked/IDetailedStatusForTrackedBranch.java | 7 +++ .../tracked/TrackedBranchChainsProcessor.java | 60 ++ .../tcbot/engine/ui/GuardBranchStatusUi.java | 58 + .../apache/ignite/tcignited/ITeamcityIgnited.java | 4 ++ .../ignite/tcignited/TeamcityIgnitedImpl.java | 8 ++- .../ignite/tcignited/history/HistoryCollector.java | 44 9 files changed, 210 insertions(+), 25 deletions(-) diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java index b1ce2f9..a9170d3 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java @@ -28,7 +28,7 @@ package org.apache.ignite.ci.web.model; public static final String GITHUB_REF = "https://github.com/apache/ignite-teamcity-bot;; /** TC Bot Version. */ -public static final String VERSION = "20190731"; +public static final String VERSION = "20190801"; /** Java version, where Web App is running. */ public String javaVer; diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java index 1ff6d7c..3b87184 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/tracked/GetTrackedBranchTestResults.java @@ -18,7 +18,10 @@ package org.apache.ignite.ci.web.rest.tracked; import com.google.inject.Injector; +import java.util.List; +import java.util.Objects; import java.util.Set; +import java.util.stream.Collectors; import javax.annotation.Nonnull; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; @@ -38,6 +41,7 @@ import org.apache.ignite.tcbot.engine.tracked.DisplayMode; import org.apache.ignite.tcbot.engine.tracked.IDetailedStatusForTrackedBranch; import org.apache.ignite.tcbot.engine.tracked.TrackedBranchChainsProcessor; import org.apache.ignite.tcbot.engine.ui.DsSummaryUi; +import org.apache.ignite.tcbot.engine.ui.GuardBranchStatusUi; import org.apache.ignite.tcbot.engine.ui.UpdateInfo; import org.apache.ignite.tcignited.ITeamcityIgnitedProvider; import org.apache.ignite.tcignited.SyncMode; @@ -220,4 +224,17 @@ public class GetTrackedBranchTestResults { .getInstance(TcBotTriggerAndSignOffService.class) .getMutes(srvCode, projectId, creds); } + +@GET +@Path("summary") +public List getIdsIfAccessible() { +ITcBotUserCreds prov = ITcBotUserCreds.get(req); +Injector injector = CtxListener.getInjector(ctx); +ITcBotConfig cfg = injector.getInstance(ITcBotConfig.class); +IDetailedStatusForTrackedBranch status = injector.getInstance(IDetailedStatusForTrackedBranch.class); + +return cfg.getTrackedBranches().branchesStream() +.map(bt -> status.getBranchSummary(bt.name(), prov)).filter(Objects::nonNull) +.collect(Collectors.toList()); +} } diff --git a/ignite-tc-helper-web/src/main/webapp/guard.html b/ignite-tc-helper-web/src/main/webapp/guard.html index 0078687..8c8d303 100644 --- a/ignite-tc-helper-web/src/main/webapp/guard.html +++ b/ignite-tc-helper-web/src/main/webapp/guard.html @@ -33,15 +33,50 @@ function loadData() { success: function(result) { $("#loadStatus").html(""); showTrackedBranchesLinks(result); + +$.ajax({ +url: "rest/tracked/summary", +success: function(result) { +$("#loadStatus").html(""); +showTrackedBranchesLinks2(result); +}, +error: showErrInLoadStatus +}); }, error: showErrInLoadStatus }); + +} + +function showTrackedBranchesLinks2(result) {
[ignite] branch master updated: IGNITE-10654 Print warn message in case of index creating with already existing fields.
This is an automated email from the ASF dual-hosted git repository. agura 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 c41466f IGNITE-10654 Print warn message in case of index creating with already existing fields. c41466f is described below commit c41466f480aca524f7a9da2891d1988c0e82bc43 Author: zstan AuthorDate: Thu Aug 1 16:14:50 2019 +0300 IGNITE-10654 Print warn message in case of index creating with already existing fields. Signed-off-by: Andrey Gura --- .../processors/query/QueryIndexDescriptorImpl.java | 2 +- .../processors/query/h2/opt/GridH2Table.java | 76 +++- .../cache/IgniteDynamicSqlRestoreTest.java | 2 +- .../processors/cache/index/BasicIndexTest.java | 487 - 4 files changed, 560 insertions(+), 7 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryIndexDescriptorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryIndexDescriptorImpl.java index 1b85af5..d8b972c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryIndexDescriptorImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryIndexDescriptorImpl.java @@ -127,7 +127,7 @@ public class QueryIndexDescriptorImpl implements GridQueryIndexDescriptor { if (descending) { if (descendings == null) -descendings = new HashSet<>(); +descendings = new HashSet<>(); descendings.add(field); } diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java index 250fe2d..a4dfa16 100644 --- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java +++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GridH2Table.java @@ -29,10 +29,15 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.LongAdder; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.IgniteInterruptedException; import org.apache.ignite.cache.query.QueryRetryException; import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; +import org.apache.ignite.IgniteLogger; +import org.apache.ignite.internal.GridKernalContext; import org.apache.ignite.internal.processors.cache.GridCacheContext; import org.apache.ignite.internal.processors.cache.GridCacheContextInfo; import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow; @@ -48,6 +53,7 @@ import org.apache.ignite.internal.processors.query.h2.database.H2IndexType; import org.apache.ignite.internal.processors.query.h2.database.H2TreeIndex; import org.apache.ignite.internal.processors.query.h2.database.H2TreeIndexBase; import org.apache.ignite.internal.processors.query.h2.database.IndexInformation; +import org.apache.ignite.internal.util.tostring.GridToStringExclude; import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.spi.indexing.IndexingQueryCacheFilter; @@ -163,6 +169,10 @@ public class GridH2Table extends TableBase { /** Table statistics. */ private volatile TableStatistics tblStats; +/** Logger. */ +@GridToStringExclude +private IgniteLogger log; + /** * Creates table. * @@ -231,6 +241,12 @@ public class GridH2Table extends TableBase { // Init stats with the dummy values. This prevents us from scanning index with backup filter when // topology may not be initialized yet. tblStats = new TableStatistics(0, 0); + +if (desc != null && desc.context() != null) { +GridKernalContext ctx = desc.context().kernalContext(); + +log = ctx.log(getClass()); +} } /** @@ -858,6 +874,52 @@ public class GridH2Table extends TableBase { } /** + * Checks index presence, return {@link Index} if index with same name or same fields and search direction already + * exist or {@code null} othervise. + * + * @param curIdx Index to check. + * @return Index if equal or subset index exist. + * @throws IgniteCheckedException If failed. + */ +private @Nullable Index checkIndexPresence(Index curIdx) throws IgniteCheckedException { +IndexColumn[] curColumns = curIdx.getIndexColumns(); + +Index registredIdx = null; + +for (Index idx : idxs) { +if (!(idx instanceof
[ignite] branch ignite-11704-1 deleted (was 2394c56)
This is an automated email from the ASF dual-hosted git repository. sboikov pushed a change to branch ignite-11704-1 in repository https://gitbox.apache.org/repos/asf/ignite.git. was 2394c56 ignite-11704 This change permanently discards the following revisions: discard 2394c56 ignite-11704
[ignite] branch ignite-11704 updated: ignite-11704
This is an automated email from the ASF dual-hosted git repository. sboikov pushed a commit to branch ignite-11704 in repository https://gitbox.apache.org/repos/asf/ignite.git The following commit(s) were added to refs/heads/ignite-11704 by this push: new 1da9dc3 ignite-11704 1da9dc3 is described below commit 1da9dc31b51718f595334a32e60e11f571676dd5 Author: sboikov AuthorDate: Thu Aug 1 09:43:33 2019 +0300 ignite-11704 --- .../ignite/internal/processors/cache/CacheGroupContext.java | 2 +- .../apache/ignite/internal/processors/cache/GridCacheContext.java | 8 ++-- .../ignite/internal/processors/cache/GridCacheMapEntry.java | 3 +++ .../internal/processors/cache/IgniteCacheOffheapManagerImpl.java | 2 ++ .../cache/distributed/dht/topology/GridDhtLocalPartition.java | 2 -- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java index 3a7a445..c2cba6b 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java @@ -1296,7 +1296,7 @@ public class CacheGroupContext { * @return {@code True} if need create temporary tombstones entries for removed data. */ public boolean supportsTombstone() { -return !sharedGroup() && !hasAtomicCaches && !mvccEnabled && !isLocal(); +return !mvccEnabled && !isLocal(); } /** diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java index 959095c..4c51981 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java @@ -625,8 +625,12 @@ public class GridCacheContext implements Externalizable { public void cache(GridCacheAdapter cache) { this.cache = cache; -deferredDel = !grp.supportsTombstone() && (cache.isDht() || cache.isDhtAtomic() || cache.isColocated() || -(cache.isNear() && cache.configuration().getAtomicityMode() == ATOMIC)); +if (grp.supportsTombstone() && cache.configuration().getAtomicityMode() == TRANSACTIONAL) +deferredDel = false; +else { +deferredDel = (cache.isDht() || cache.isDhtAtomic() || cache.isColocated() || +(cache.isNear() && cache.configuration().getAtomicityMode() == ATOMIC)); +} } /** diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java index 1133085..db066b6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java @@ -4505,6 +4505,9 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme CacheDataRow row = cctx.offheap().read(this); +if (cctx.offheap().isTombstone(row)) +return; + if (row != null && (filter == null || filter.apply(row))) clo.apply(row); } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java index 1f3a22d..9d15358 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapManagerImpl.java @@ -628,6 +628,8 @@ public class IgniteCacheOffheapManagerImpl implements IgniteCacheOffheapManager GridCacheVersion ver, GridDhtLocalPartition part) throws IgniteCheckedException { assert part != null; +assert !cctx.isNear(); +assert !cctx.isLocal(); dataStore(part).removeWithTombstone(cctx, key, ver, part); } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtLocalPartition.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtLocalPartition.java index d9b34c6..f098e99 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/topology/GridDhtLocalPartition.java +++