Ivan Bessonov created IGNITE-23105:
--------------------------------------
Summary: Data race in aipersist partition destruction
Key: IGNITE-23105
URL: https://issues.apache.org/jira/browse/IGNITE-23105
Project: Ignite
Issue Type: Bug
Reporter: Ivan Bessonov
{{CheckpointProgressImpl#onStartPartitionProcessing}} and
{{CheckpointProgressImpl#onFinishPartitionProcessing}} don't work as intended
for several reasons:
* There's a race, we could call {{onFinish}} before {{onStart}} is called in a
concurrent thread. This might happen if there's only a handful of dirty pages
in each partition and there are more than one checkpoint threads. Basically,
this protection doesn't work.
* Even if that particular race wouldn't exits, this code still doesn't work,
because some of pages could be added to {{pageIdsToRetry}} map. That map will
be processed later, when
{{writePages}} is finished, manning that we mark unfinished partitions as
finished.
* Due to aforementioned bugs, I didn't bother including these methods to
{{{}drainCheckpointBuffers{}}}. As a result, this method requires a fix too
--
This message was sent by Atlassian Jira
(v8.20.10#820010)