Details
-
Sub-task
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
Currently DFSEvaluatorLogOverwriteReaderWriter has the following code in log writing:
IOUtils.copyBytes(inputStream, outputStream, 4096, true); ... outputStream.hsync(); if (inputStream != null) { inputStream.close(); }
The 4th parameter in copyBytes is boolean close, which directs IOUtils to close streams after copying is done. So when the code gets to hsync(), it attempts to sync closed stream. This fails on some systems. If we set close to false, closing will be done together with flushing, and writing succeeds.