Aleksey Plekhanov created IGNITE-9303: -----------------------------------------
Summary: PageSnapshot can contain wrong pageId tag when not dirty page is recycling Key: IGNITE-9303 URL: https://issues.apache.org/jira/browse/IGNITE-9303 Project: Ignite Issue Type: Bug Affects Versions: 2.6 Reporter: Aleksey Plekhanov When page is recycling (for example in {{BPlusTree.Remove#freePage()}} -> {{DataStructure#recyclePage()}}) tag of {{pageId}} is modified, but original {{pageId}} is passed to {{writeUnlock()}} method and this passed {{pageId}} is stored to PageSnapshot WAL record. This bug may lead to errors in WAL applying during crash recovery. Reproducer (ignite-indexing module must be in classpath): {code:java} public class WalFailReproducer extends AbstractWalDeltaConsistencyTest { /** {@inheritDoc} */ @Override protected boolean checkPagesOnCheckpoint() { return true; } /** * */ public final void testPutRemoveCacheDestroy() throws Exception { CacheConfiguration<Integer, Integer> ccfg = new CacheConfiguration<>("cache0"); ccfg.setIndexedTypes(Integer.class, Integer.class); IgniteEx ignite = startGrid(0); ignite.cluster().active(true); IgniteCache<Integer, Integer> cache0 = ignite.getOrCreateCache(ccfg); for (int i = 0; i < 5_000; i++) cache0.put(i, i); forceCheckpoint(); for (int i = 1_000; i < 4_000; i++) cache0.remove(i); forceCheckpoint(); stopAllGrids(); } } {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)