Description
The async index update uses checkpoints to ensure consistency: it
- 1. creates checkpoint2
- 2. indexes everything between checkpoint1 and checkpoint2
- 3. update the indexing lane to checkpoint2
If there is s a problem before step 3, the checkpoint2 is removed. That's fine.
However, if there is a problem after step 3 is complete, in some cases it also removes checkpoint2. This is incorrect, as checkpoint2 is needed.
We have seen this is the case if the node store is closed, but dispose works. See OAK-9300. So fixing that should resolve most issues. However, the current code is still not correct.