Dmitriy Govorukhin created IGNITE-12048:
-------------------------------------------
Summary: Bugs & tests fixes
Key: IGNITE-12048
URL:
https://issues.apache.org/jira/browse/IGNITE-12048 Project: Ignite
Issue Type: Bug
Reporter: Dmitriy Govorukhin
Page replacement can reload invalid page during checkpoint
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.
-----
checkpointReadLock() may hang during node stop
I got this hang during one of PDS (Indexing) runs (thread-dump is attached).
The following code hang:
{code:java}
checkpointer.wakeupForCheckpoint(0, "too many dirty pages").cpBeginFut
.getUninterruptibly();
{code}
It looks like {{wakeupForCheckpoint}} can be called after the checkpointer is stopped and {{cpBeginFut}} will be never completed.
----
-----
Fixed ZookeeperDiscoveryCommunicationFailureTest.testCommunicationFailureResolve_CachesInfo1
Fixed *.testFailAfterStart
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)