Do not evict removed entries, otherwise removes can be lost. (cherry picked from commit 55ac6e7)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b77428d1 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b77428d1 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b77428d1 Branch: refs/heads/ignite-5232-1.7.2 Commit: b77428d12658b3ab2cdd43ca61ed71d329e83283 Parents: b2040b7 Author: sboikov <[email protected]> Authored: Tue Jan 10 16:59:17 2017 +0300 Committer: dkarachentsev <[email protected]> Committed: Wed May 24 11:16:42 2017 +0300 ---------------------------------------------------------------------- .../ignite/internal/processors/cache/GridCacheMapEntry.java | 8 ++++++++ 1 file changed, 8 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/b77428d1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java ---------------------------------------------------------------------- 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 58b4ae3..c8b8cd1 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 @@ -4300,6 +4300,10 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme if (obsoleteVersionExtras() != null) return true; + // TODO GG-11241: need keep removed entries in heap map, otherwise removes can be lost. + if (cctx.deferredDelete() && deletedUnlocked()) + return false; + CacheObject prev = saveOldValueUnlocked(false); if (!hasReaders() && markObsolete0(obsoleteVer, false, null)) { @@ -4358,6 +4362,10 @@ public abstract class GridCacheMapEntry extends GridMetadataAwareAdapter impleme // Version has changed since entry passed the filter. Do it again. continue; + // TODO GG-11241: need keep removed entries in heap map, otherwise removes can be lost. + if (cctx.deferredDelete() && deletedUnlocked()) + return false; + CacheObject prevVal = saveValueForIndexUnlocked(); if (!hasReaders() && markObsolete0(obsoleteVer, false, null)) {
