In WT-14376, the turtle caused recovery to begin at checkpoint A, but later in the log there was an additional checkpoint B, which included a history file checkpoint. WT recovery first recovers metadata only from A to the end of the log, and the history file was errantly opened during this recovery (before seeing B). This created a dhandle that had knowledge of checkpoint A. When recover sees B, a new checkpoint is made from the history file. Then the regular (non-metadata) recover runs from A to the end of the log, which caused history changes to the Btree (using the dhandle with old information). When the next checkpoint occurs (at the end of recovery), there is a conflict between the dhandle's checkpoint information and the metadata's checkpoint information.
To avoid this, the history store should not be opened during the metadata recovery, and further, we should require that no other data files be opened.
- related to
-
WT-14401 On recovery, ignore checkpoint log records related to an incomplete checkpoint
-
- Closed
-