This is an automated email from the ASF dual-hosted git repository. sergeychugunov 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 b5562df IGNITE-13802 Added missing "setCandidatePageCount" in "GridCacheOffheapManager.addPartitions" - Fixes #8527. b5562df is described below commit b5562df259e1547e4724c92054ceeb7f8b7d72d7 Author: ibessonov <bessonov...@gmail.com> AuthorDate: Fri Dec 4 09:52:37 2020 +0300 IGNITE-13802 Added missing "setCandidatePageCount" in "GridCacheOffheapManager.addPartitions" - Fixes #8527. Signed-off-by: Sergey Chugunov <sergey.chugu...@gmail.com> --- .../cache/persistence/GridCacheOffheapManager.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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 f28433e..8fc369e 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 @@ -890,9 +890,23 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple try { long metaPageAddr = pageMem.writeLock(grpId, metaPageId, metaPage); + if (metaPageAddr == 0L) { + U.warn(log, "Failed to acquire write lock for index meta page [grpId=" + grpId + + ", metaPageId=" + metaPageId + ']'); + + return; + } + + boolean changed = false; + try { PageMetaIO metaIo = PageMetaIO.getPageIO(metaPageAddr); + int pageCnt = this.ctx.pageStore().pages(grpId, PageIdAllocator.INDEX_PARTITION); + + changed = metaIo.setCandidatePageCount(metaPageAddr, pageCnt); + + // Following method doesn't modify page data, it only reads last allocated page count from it. addPartition( null, ctx.partitionStatMap(), @@ -900,11 +914,11 @@ public class GridCacheOffheapManager extends IgniteCacheOffheapManagerImpl imple metaIo, grpId, PageIdAllocator.INDEX_PARTITION, - this.ctx.pageStore().pages(grpId, PageIdAllocator.INDEX_PARTITION), + pageCnt, -1); } finally { - pageMem.writeUnlock(grpId, metaPageId, metaPage, null, true); + pageMem.writeUnlock(grpId, metaPageId, metaPage, null, changed); } } finally {