IGNITE-9612 Fixed checkpoint listener logic - Fixes #4864. Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2f3b567f Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2f3b567f Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2f3b567f Branch: refs/heads/ignite-5797 Commit: 2f3b567f61c2a9a1080ee7fda57f3a18231b1dae Parents: 69adfd5 Author: Aleksei Scherbakov <alexey.scherbak...@gmail.com> Authored: Fri Sep 28 18:50:05 2018 +0300 Committer: Alexey Goncharuk <alexey.goncha...@gmail.com> Committed: Fri Sep 28 18:50:05 2018 +0300 ---------------------------------------------------------------------- .../persistence/GridCacheOffheapManager.java | 29 ++++++++++---------- 1 file changed, 15 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2f3b567f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java index 16c30c9..d704abd 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java @@ -170,12 +170,24 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple Executor execSvc = ctx.executor(); + if (ctx.nextSnapshot() && ctx.needToSnapshot(grp.cacheOrGroupName())) { + if (execSvc == null) + updateSnapshotTag(ctx); + else { + execSvc.execute(() -> { + try { + updateSnapshotTag(ctx); + } + catch (IgniteCheckedException e) { + throw new IgniteException(e); + } + }); + } + } + if (execSvc == null) { reuseList.saveMetadata(); - if (ctx.nextSnapshot()) - updateSnapshotTag(ctx); - for (CacheDataStore store : partDataStores.values()) saveStoreMetadata(store, ctx, false); } @@ -189,17 +201,6 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple } }); - if (ctx.nextSnapshot()) { - execSvc.execute(() -> { - try { - updateSnapshotTag(ctx); - } - catch (IgniteCheckedException e) { - throw new IgniteException(e); - } - }); - } - for (CacheDataStore store : partDataStores.values()) execSvc.execute(() -> { try {