- Rollback-to-stable rolls back instantiated fast-truncate pages twice, once when processing the
parent internal page and a second time when processing the child leaf page.
I don't see a problem in the current code, but it's dangerous because rollback-to-stable uses
the WT_PAGE_DELETED.durable_timestamp value to determine if rollback is needed. When a page is
instantiated, the WT_PAGE_DELETED.durable_timestamp moves from the WT_PAGE_DELETED structure
to the individual WT_UPDATE structures, so after instantiation rollback-to-stable is taking
the value from the wrong source.
Change rollback-to-stable to only check WT_PAGE_DELETED.durable_timestamp for pages that have
not yet been instantiated.
- Checking the WT_REF.state is insufficient, WT_REF_DELETED can mean an empty page as well as
a fast-truncate page.
- style cleanup. | 15 Jun 21 03:40 UTC
Evergreen Subscription: ; Evergreen Event: