Fix bug that flush doesn't respond to fsync result

Summary:
With a regression bug was introduced two years ago, by 6e9fbeb27c , we fail to check return status of fsync call. This can cause we miss the information from the file system and can potentially cause corrupted data which we could have been detected.
Closes https://github.com/facebook/rocksdb/pull/2495

Reviewed By: ajkr

Differential Revision: D5321949

Pulled By: siying

fbshipit-source-id: c68117914bb40700198fc37d0e4c63163a8a1031
This commit is contained in:
Siying Dong 2017-06-26 12:32:52 -07:00 committed by Andrew Kryczka
parent 6e0597951e
commit 2955407c3a
2 changed files with 5 additions and 1 deletions

View File

@ -1,4 +1,8 @@
# Rocksdb Change Log
## 5.4.7 (06/28/2017)
### Bug Fixes
* Shouldn't ignore return value of fsync() in flush.
## 5.4.6 (05/30/2017)
### Bug Fixes
* Fix db_bench with lite build.

View File

@ -177,7 +177,7 @@ Status BuildTable(
// Finish and check for file errors
if (s.ok() && !empty) {
StopWatch sw(env, ioptions.statistics, TABLE_SYNC_MICROS);
file_writer->Sync(ioptions.use_fsync);
s = file_writer->Sync(ioptions.use_fsync);
}
if (s.ok() && !empty) {
s = file_writer->Close();