From 0e8109126372a8b1dfc0939f9672cc2d0afc2001 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Sun, 15 Sep 2013 20:14:06 -0700 Subject: [PATCH] More fixes for blockchain corruption on OSX. As we'd previously learned, OSX's fsync is a data eating lie. Since 0.8.4 we're still getting some reports of disk corruption on OSX but now all of it looks like the block files have gotten out of sync with the database. It turns out that we were still using fsync() on the block files, so this isn't surprising. --- src/util.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/util.cpp b/src/util.cpp index 321bd25b9..f1785be24 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1148,6 +1148,8 @@ void FileCommit(FILE *fileout) #else #if defined(__linux__) || defined(__NetBSD__) fdatasync(fileno(fileout)); + #elif defined(__APPLE__) && defined(F_FULLFSYNC) + fcntl(fileno(fileout), F_FULLFSYNC, 0); #else fsync(fileno(fileout)); #endif