Priority: Major - P3
Affects Version/s: None
Fix Version/s: WT2.7.0
The page-split cleanup needs review and cleanup, there are a few different obvious problems:
- wt_split_rewrite isn't discarding the newly created page on error
- split_multi_inmem discards the replacement disk image which means on failure, the reconciliation state is corrupted
- wt_split_insert doesn't get the accounting correct if the page-split fails.
This is exacerbated by the new code that relies on split_parent locking the page (using the reconciliation lock), and returning EBUSY if the lock isn't available and the file is being checkpointed, to avoid deadlock. This makes it likely that a busy system can trigger one of these failures.