The WiredTiger salvage code discards leaf pages in the case of pages that reference overflow items we don't have:
* Discard any page referencing a non-existent overflow page. We do * this before checking overlapping key ranges on the grounds that a * bad key range we can use is better than a terrific key range that * references pages we don't have. * * An alternative would be to discard only the on-page item referencing * the missing overflow item. We're not doing that because: (1) absent * corruption, a missing overflow item is a strong argument the page was * replaced (but admittedly, corruption is probably why we're here); (2) * it's a lot of work, and as WiredTiger supports very large page sizes, * overflow items simply shouldn't be common. * * If an overflow page is referenced more than once, discard leaf pages * with the lowest LSNs until overflow pages are only referenced once.
As noted in the comment, a better solution would be to split pages into multiple chunks, a chunk before and a chunk after the row that references the missing overflow item.
- related to
-
WT-1222 salvage failure: overflow record at row-store page merge referenced multiple times
- Closed