Affects Version/s: None
Fix Version/s: WT1.4.2
Michael, I'm creating a pull request to make it easy to look at this change.
I'll also annotate a few places in the diff so it's easier to understand.
I believe this branch fixes the problems described in
WT-419, but at the cost of losing much of the power of two-pass checkpoints (it prevents eviction of any page with any modification structure associated with it during the internal-page phase of the checkpoint).
I'm still trying to think of a better fix, but I've got nothing so far.