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.
- is related to
-
WT-14455 Update the oldest_id before the drop table active transaction check
-
- Closed
-
- related to
-
WT-14391 Check eviction server is running before opening HS
-
- Closed
-
-
WT-14401 On recovery, ignore checkpoint log records related to an incomplete checkpoint
-
- Closed
-
-
WT-13747 Remove obsolete page check in checkpoint skip logic
-
- Closed
-
-
WT-12244 Simplify __rec_row_zero_len
-
- Closed
-
-
WT-14403 Remove the partial logic and rewrite __live_restore_can_service_read
-
- Closed
-