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)