You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2020/12/07 11:09:36 UTC

[ignite] branch master updated: IGNITE-13813 Fixed assertion in page snapshot apply method. - Fixes #8541.

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 69fd978  IGNITE-13813 Fixed assertion in page snapshot apply method. - Fixes #8541.
69fd978 is described below

commit 69fd978eb82061196a231d2c436f8a4d22206871
Author: ibessonov <be...@gmail.com>
AuthorDate: Mon Dec 7 11:40:08 2020 +0300

    IGNITE-13813 Fixed assertion in page snapshot apply method. - Fixes #8541.
    
    Signed-off-by: Sergey Chugunov <se...@gmail.com>
---
 .../compress/WalPageCompressionIntegrationTest.java    | 18 ++++++++++++++++++
 .../persistence/GridCacheDatabaseSharedManager.java    |  2 +-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/WalPageCompressionIntegrationTest.java b/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/WalPageCompressionIntegrationTest.java
index eb7e118..b589eaf 100644
--- a/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/WalPageCompressionIntegrationTest.java
+++ b/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/WalPageCompressionIntegrationTest.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.compress;
 
 import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cluster.ClusterState;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;
 import org.apache.ignite.configuration.DataStorageConfiguration;
@@ -28,6 +29,7 @@ import org.apache.ignite.internal.pagemem.wal.record.CheckpointRecord;
 import org.apache.ignite.internal.processors.cache.persistence.wal.WALPointer;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.junit.Test;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
 
@@ -97,4 +99,20 @@ public class WalPageCompressionIntegrationTest extends AbstractPageCompressionIn
         assertTrue("Compressed WAL must be smaller than uncompressed [ptr0=" + ptr0 + ", ptr1=" + ptr1 + ']',
             ptr0.compareTo(ptr1) < 0);
     }
+
+    /** */
+    @Test
+    public void testSkipGarbageApplyPageSnapshotWrongAssertion() throws Exception {
+        compression = DiskPageCompression.SKIP_GARBAGE;
+
+        IgniteEx ignite = startGrid(0);
+
+        ignite.cluster().state(ClusterState.ACTIVE);
+
+        ignite.getOrCreateCache(DEFAULT_CACHE_NAME);
+
+        stopGrid(0, true);
+
+        startGrid(0);
+    }
 }
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 1484e30..4429ec7 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
@@ -2358,7 +2358,7 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan
                 if (PageIO.getCompressionType(pageAddr) != CompressionProcessor.UNCOMPRESSED_PAGE) {
                     int realPageSize = pageMem.realPageSize(pageSnapshotRecord.groupId());
 
-                    assert pageSnapshotRecord.pageDataSize() < realPageSize : pageSnapshotRecord.pageDataSize();
+                    assert pageSnapshotRecord.pageDataSize() <= realPageSize : pageSnapshotRecord.pageDataSize();
 
                     cctx.kernalContext().compress().decompressPage(pageMem.pageBuffer(pageAddr), realPageSize);
                 }