From d8c479ab1e784a67665c4f1ac3a0d27312fbdd80 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Tue, 13 Dec 2016 13:56:36 +0100 Subject: [PATCH] Don't wipe db if check fails while disk space is low #5357 An experimental fix for the issue, merged because it's low risk and makes testing easier. --- src/libsync/ownsql.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/libsync/ownsql.cpp b/src/libsync/ownsql.cpp index 0fe9d399d..81d910f1c 100644 --- a/src/libsync/ownsql.cpp +++ b/src/libsync/ownsql.cpp @@ -97,6 +97,14 @@ bool SqlDatabase::openOrCreateReadWrite( const QString& filename ) } if( !checkDb() ) { + // When disk space is low, checking the db may fail even though it's fine. + qint64 freeSpace = Utility::freeDiskSpace(filename); + if (freeSpace < 1000000) { + qDebug() << "Consistency check failed, disk space is low, aborting" << freeSpace; + close(); + return false; + } + qDebug() << "Consistency check failed, removing broken db" << filename; close(); QFile::remove(filename); -- 2.30.2