Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
0.90.0
-
None
-
Reviewed
Description
Currently it appears that internalFlushCache writes directly to the target spot of the flushed data. The finally() block appends the metadata and closes the file as if nothing bad went wrong in case of an exception. This is really bad, since it means that an IOE in the middle of flushing cache could easily write a valid looking file with only half the data, which would then prevent us from recovering those edits during log replay.
Instead, it should flush to a tmp location and move it into the region dir only after it's successfully written.