Maria Makedonskaya created IGNITE-13382:
-------------------------------------------

             Summary: DurableBackgroundTask can abandon incomplete task
                 Key: IGNITE-13382
                 URL: https://issues.apache.org/jira/browse/IGNITE-13382
             Project: Ignite
          Issue Type: Bug
    Affects Versions: 2.7
            Reporter: Maria Makedonskaya
            Assignee: Maria Makedonskaya


DurableBackgroundTasks are tracked using metastorage, there's a specific marker 
for every task, and it is removed right after the task is complete.

But there's a race between checkpointer and metastorage. End-marker removal is 
a logical operation, while task itself is mostly physical (at least the 
existing one). So, following scenario is possible:
* Checkpoint occurs in the middle of the task;
* Task is completed before the next checkpoint;
* Metastorage record is deleted, this fact if written to WAL and synced to the 
storage;
* Node failed;
* Recovery process applies deletion from metastorage, this means that 
DurableBackgroundTasks info is lost;
* But part of the index is still present in the storage.

I think that we should remove markers from metastorage only after the next 
checkpoint, this will 100% save us from such situation.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to