summaryrefslogtreecommitdiff
path: root/dist
diff options
context:
space:
mode:
authorKeith Bostic <keith.bostic@mongodb.com>2016-09-08 02:27:14 -0400
committerMichael Cahill <michael.cahill@mongodb.com>2016-09-08 16:27:14 +1000
commit5f07ab685f2b1e978cfda354dd52a5fc52f8f8ab (patch)
treea3f211c6b2e6cf48637cf04b85958ba72efc409a /dist
parentac66d28f02f6ede3ed5f3d0eaf273a47ee4c2147 (diff)
downloadmongo-5f07ab685f2b1e978cfda354dd52a5fc52f8f8ab.tar.gz
WT-2897 Checkpoints can become corrupted on failure (#3027)
During a checkpoint, the extent lists of previous checkpoints that are being discarded are merged into the live system's extent lists. If there's an error (most likely disk-full causing a write to fail), the live system's allocation list can be left corrupted. Future checkpoints are not locked out by this failure, which means a subsequent checkpoint (for example, the sweep server closing the file) could potentially create a checkpoint based on corrupted extent lists. After the live system's extent lists have been modified during a checkpoint, change errors to switch the handle into read-only mode and panic the system. Second, the checks for re-entering the checkpoint code don't prevent bugs in the upper-level code from affecting checkpoints, and I'm suspicious that is happening. Adjust the in-checkpoint tests and use the live system's lock to ensure the checkpoint code is never re-entered.
Diffstat (limited to 'dist')
0 files changed, 0 insertions, 0 deletions