Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
We introduce an os::rename abstraction to stout in order to support atomicity and validity of checkpointed files. Writing directly to the checkpoint file can leave the file in a corrupted state if either: the slave crashes while writing, or checkpointing encounters an error and the slave crashes before the partially written file is removed. We should checkpoint to a temporary file instead and use os::rename to atomically move it to the desired path.