Dmitriy Govorukhin created IGNITE-12081:
-------------------------------------------
Summary: Page replacement can reload invalid page during checkpoint
Key: IGNITE-12081
URL: https://issues.apache.org/jira/browse/IGNITE-12081
Project: Ignite
Issue Type: Bug
Reporter: Dmitriy Govorukhin
Assignee: Dmitriy Govorukhin
There is a race between {{writeCheckpointPages}} and page replacement process:
* Checkpointer thread begins a checkpoint
* Checkpointer thread calls {{getPageForCheckpoint()}}, which will copy page
content *and clear dirty flag*
* Page replacement tries to find a page for replacement and chooses this page,
the page is thrown away
* Before the page is written back to the store, the page is acquired again.
As a result, an older copy of the page is brought back to memory, which causes
all kinds of corruption exceptions and assertions.
The attached unit test demonstrates the issue. It is likely that all baselines
are affected starting from 2.4
As a part of this ticket, we must add more unit-tests for checkpointing
protocol invariants we rely on.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)