@agorrod, @michaelcahill: there's a stall in the new-split branch. I was hoping Michael's
WT-931 would fix it, but I can still reproduce the problem. Here's the config I'm using, and the more threads, the sooner it fires:
and we end up with checkpoint in an infinite loop walking the tree:
It looks to me like checkpoint is looping between two pages: the "couple" page and the next page (which is a WT_REF_SPLIT page). Checkpoint reads the split page, gets a WT_RESTART return, returns to the "couple" page, does a next, and winds up on the split page again.
I can reproduce the problem even without deepening the tree, so this is a fundamental issue in splitting (maybe an eviction race with checkpoint, maybe a race inside split itself).