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)

Reply via email to