Checkpointing does a bunch of work between committing the checkpoint to all the files and updating the last_checkpoint timestamp so it's not atomic. The solution is to use WT_CURSOR::checkpoint_id introduced in WT-9208 to guard that a checkpoint didn't occur during this setup code instead of relying on getLastStableRecoveryTimestamp. Instead we'd open a checkpoint cursor at the beginning and another at the end to compare the checkpoint IDs.
- depends on
-
WT-9208 Add cursor method to allow applications to detect checkpoint cursor mismatch
- Closed
- related to
-
SERVER-81179 Backup cursor service reports backup cursor checkpointTimestamp that does not match the actual WT backup cursor checkpointTimestamp
- Closed
-
SERVER-65974 Replace HistoricalIdentTracker with checkpoint cursors
- Closed