basho/bitcask — pull request #86 by slfritchie (2013-03-28 22:02:26+00:00)
Title: Fix race with deleting stale input files from merge, h/t @evanmcc

Evan found a failing QuickCheck + PULSE test case that causes a
fold to fail when racing with a merge. The race appears to be
very difficult to trigger via QC + PULSE, alas, even when
tweaking the operation weights to get more puts + folds + merge
operations to happen on average.

My proposed fix is to move the call to `purge_setuid_files/1`
to the `init_keydir()` function. `init_keydir()` knows if
we're opening the keydir for the first time (`not_ready` or
not), so purge the stale setuid files only in the `not_ready`
case.