IGNITE-8166 PME hangs when error occurs during checkpoint Signed-off-by: Andrey Gura <ag...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e254e658 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e254e658 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e254e658 Branch: refs/heads/ignite-7708 Commit: e254e6588b7983ed8c13832a5512e662fb8c4215 Parents: b810bd4 Author: Aleksey Plekhanov <plehanov.a...@gmail.com> Authored: Tue Apr 17 15:56:36 2018 +0300 Committer: Andrey Gura <ag...@apache.org> Committed: Tue Apr 17 15:56:36 2018 +0300 ---------------------------------------------------------------------- .../cache/persistence/GridCacheDatabaseSharedManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/e254e658/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java index caf27b7..a371aa8 100755 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java @@ -3667,7 +3667,14 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan private GridFutureAdapter cpBeginFut = new GridFutureAdapter<>(); /** */ - private GridFutureAdapter cpFinishFut = new GridFutureAdapter<>(); + private GridFutureAdapter cpFinishFut = new GridFutureAdapter<Void>() { + @Override protected boolean onDone(@Nullable Void res, @Nullable Throwable err, boolean cancel) { + if (err != null && !cpBeginFut.isDone()) + cpBeginFut.onDone(err); + + return super.onDone(res, err, cancel); + } + }; /** */ private volatile boolean nextSnapshot;