diff --git a/src/engine/CMakeLists.txt b/src/engine/CMakeLists.txt --- a/src/engine/CMakeLists.txt +++ b/src/engine/CMakeLists.txt @@ -48,6 +48,7 @@ SOVERSION ${BALOO_SOVERSION} EXPORT_NAME BalooEngine ) + ##target_include_directories(KF5BalooEngine INTERFACE "$") generate_export_header(KF5BalooEngine BASE_NAME BALOO_ENGINE EXPORT_FILE_NAME engine_export.h) diff --git a/src/engine/database.cpp b/src/engine/database.cpp --- a/src/engine/database.cpp +++ b/src/engine/database.cpp @@ -41,6 +41,8 @@ #include "idutils.h" #include "fsutils.h" +#include "enginedebug.h" + #include #include #include @@ -85,7 +87,7 @@ if (mode == CreateDatabase) { if (!QFileInfo(dir.absolutePath()).permission(QFile::WriteOwner)) { - qCritical() << m_path << "does not have write permissions. Aborting"; + qCCritical(ENGINE) << m_path << "does not have write permissions. Aborting"; return false; } @@ -123,8 +125,9 @@ } rc = mdb_reader_check(m_env, nullptr); - Q_ASSERT_X(rc == 0, "Database::open reader_check", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "Database::open reader_check" << mdb_strerror(rc); mdb_env_close(m_env); m_env = nullptr; return false; @@ -136,8 +139,8 @@ MDB_txn* txn; if (mode != CreateDatabase) { int rc = mdb_txn_begin(m_env, nullptr, MDB_RDONLY, &txn); - Q_ASSERT_X(rc == 0, "Database::transaction ro begin", mdb_strerror(rc)); if (rc) { + qCWarning(ENGINE) << "Database::transaction ro begin" << mdb_strerror(rc); mdb_env_close(m_env); m_env = nullptr; return false; @@ -161,25 +164,25 @@ m_dbis.mtimeDbi = MTimeDB::open(txn); - Q_ASSERT(m_dbis.isValid()); if (!m_dbis.isValid()) { + qCWarning(ENGINE) << "dbis is invalid"; mdb_txn_abort(txn); mdb_env_close(m_env); m_env = nullptr; return false; } rc = mdb_txn_commit(txn); - Q_ASSERT_X(rc == 0, "Database::transaction ro commit", mdb_strerror(rc)); if (rc) { + qCWarning(ENGINE) << "Database::transaction ro commit" << mdb_strerror(rc); mdb_env_close(m_env); m_env = nullptr; return false; } } else { int rc = mdb_txn_begin(m_env, nullptr, 0, &txn); - Q_ASSERT_X(rc == 0, "Database::transaction begin", mdb_strerror(rc)); if (rc) { + qCWarning(ENGINE) << "Database::transaction begin" << mdb_strerror(rc); mdb_env_close(m_env); m_env = nullptr; return false; @@ -203,17 +206,17 @@ m_dbis.mtimeDbi = MTimeDB::create(txn); - Q_ASSERT(m_dbis.isValid()); - if (!m_dbis.isValid()) { + if (!m_dbis.isValid()) + qCWarning(ENGINE) << "dbis is invalid";{ mdb_txn_abort(txn); mdb_env_close(m_env); m_env = nullptr; return false; } rc = mdb_txn_commit(txn); - Q_ASSERT_X(rc == 0, "Database::transaction commit", mdb_strerror(rc)); if (rc) { + qCWarning(ENGINE) << "Database::transaction commit" << mdb_strerror(rc); mdb_env_close(m_env); m_env = nullptr; return false; diff --git a/src/engine/documentdatadb.cpp b/src/engine/documentdatadb.cpp --- a/src/engine/documentdatadb.cpp +++ b/src/engine/documentdatadb.cpp @@ -18,6 +18,7 @@ */ #include "documentdatadb.h" +#include "enginedebug.h" using namespace Baloo; @@ -35,21 +36,24 @@ MDB_dbi DocumentDataDB::create(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "documentdatadb", MDB_CREATE | MDB_INTEGERKEY, &dbi); - Q_ASSERT_X(rc == 0, "DocumentUrlDB::create", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "DocumentDataDB::create" << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi DocumentDataDB::open(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "documentdatadb", MDB_INTEGERKEY, &dbi); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "DocumentDataDB::open" << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "DocumentUrlDB::create", mdb_strerror(rc)); return dbi; } @@ -68,7 +72,9 @@ val.mv_data = static_cast(const_cast(url.constData())); int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "DocumentDataDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "DocumentDataDB::put" << mdb_strerror(rc); + } } QByteArray DocumentDataDB::get(quint64 docId) @@ -79,12 +85,14 @@ key.mv_size = sizeof(quint64); key.mv_data = static_cast(&docId); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "DocumentDataDB::get" << docId << mdb_strerror(rc); + } return QByteArray(); } - Q_ASSERT_X(rc == 0, "DocumentDataDB::get", mdb_strerror(rc)); return QByteArray(static_cast(val.mv_data), val.mv_size); } @@ -98,10 +106,9 @@ key.mv_data = static_cast(&docId); int rc = mdb_del(m_txn, m_dbi, &key, nullptr); - if (rc == MDB_NOTFOUND) { - return; + if (rc) { + qCDebug(ENGINE) << "DocumentDataDB::del" << docId << mdb_strerror(rc); } - Q_ASSERT_X(rc == 0, "DocumentUrlDB::del", mdb_strerror(rc)); } bool DocumentDataDB::contains(quint64 docId) @@ -112,12 +119,14 @@ key.mv_size = sizeof(quint64); key.mv_data = static_cast(&docId); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "DocumentDataDB::contains" << docId << mdb_strerror(rc); + } return false; } - Q_ASSERT_X(rc == 0, "DocumentDataDB::contains", mdb_strerror(rc)); return true; } @@ -133,10 +142,10 @@ QMap map; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "DocumentDataDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "DocumentDataDB::toTestMap", mdb_strerror(rc)); const quint64 id = *(static_cast(key.mv_data)); const QByteArray ba(static_cast(val.mv_data), val.mv_size); diff --git a/src/engine/documentdb.cpp b/src/engine/documentdb.cpp --- a/src/engine/documentdb.cpp +++ b/src/engine/documentdb.cpp @@ -20,8 +20,7 @@ #include "documentdb.h" #include "doctermscodec.h" - -#include +#include "enginedebug.h" using namespace Baloo; @@ -39,21 +38,24 @@ MDB_dbi DocumentDB::create(const char* name, MDB_txn* txn) { - MDB_dbi dbi; - int rc = mdb_dbi_open(txn, name, MDB_CREATE | MDB_INTEGERKEY, &dbi); - Q_ASSERT_X(rc == 0, "DocumentDB::create", mdb_strerror(rc)); + MDB_dbi dbi = 0; + const int rc = mdb_dbi_open(txn, name, MDB_CREATE | MDB_INTEGERKEY, &dbi); + if (rc) { + qCWarning(ENGINE) << "DocumentDB::create" << name << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi DocumentDB::open(const char* name, MDB_txn* txn) { - MDB_dbi dbi; - int rc = mdb_dbi_open(txn, name, MDB_INTEGERKEY, &dbi); - if (rc == MDB_NOTFOUND) { + MDB_dbi dbi = 0; + const int rc = mdb_dbi_open(txn, name, MDB_INTEGERKEY, &dbi); + if (rc) { + qCWarning(ENGINE) << "DocumentDB::open" << name << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "DocumentDB::open", mdb_strerror(rc)); return dbi; } @@ -75,7 +77,9 @@ val.mv_data = static_cast(arr.data()); int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "DocumentDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "DocumentDB::put" << mdb_strerror(rc); + } } QVector DocumentDB::get(quint64 docId) @@ -86,19 +90,19 @@ key.mv_size = sizeof(quint64); key.mv_data = static_cast(&docId); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "DocumentDB::get" << docId << mdb_strerror(rc); return QVector(); } - Q_ASSERT_X(rc == 0, "DocumentDB::get", mdb_strerror(rc)); QByteArray arr = QByteArray::fromRawData(static_cast(val.mv_data), val.mv_size); DocTermsCodec codec; auto result = codec.decode(arr); if (result.isEmpty()) { - qDebug() << "Document Terms DB contains corrupt data for " << docId; + qCDebug(ENGINE) << "Document Terms DB contains corrupt data for " << docId; } return result; } @@ -112,10 +116,9 @@ key.mv_data = static_cast(&docId); int rc = mdb_del(m_txn, m_dbi, &key, nullptr); - if (rc == MDB_NOTFOUND) { - return; + if (rc) { + qCDebug(ENGINE) << "DocumentDB::del" << docId << mdb_strerror(rc); } - Q_ASSERT_X(rc == 0, "DocumentDB::del", mdb_strerror(rc)); } bool DocumentDB::contains(quint64 docId) @@ -128,19 +131,24 @@ MDB_val val; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "DocumentDB::contains" << docId << mdb_strerror(rc); + } return false; } - Q_ASSERT_X(rc == 0, "DocumentDB::contains", mdb_strerror(rc)); return true; } uint DocumentDB::size() { MDB_stat stat; int rc = mdb_stat(m_txn, m_dbi, &stat); - Q_ASSERT_X(rc == 0, "DocumentDB::size", mdb_strerror(rc)); + if (rc) { + qCDebug(ENGINE) << "DocumentDB::size" << mdb_strerror(rc); + return 0; + } return stat.ms_entries; } @@ -156,10 +164,10 @@ QMap> map; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "PostingDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "PostingDB::toTestMap", mdb_strerror(rc)); const quint64 id = *(static_cast(key.mv_data)); const QVector vec = DocTermsCodec().decode(QByteArray(static_cast(val.mv_data), val.mv_size)); diff --git a/src/engine/documentiddb.cpp b/src/engine/documentiddb.cpp --- a/src/engine/documentiddb.cpp +++ b/src/engine/documentiddb.cpp @@ -19,8 +19,7 @@ */ #include "documentiddb.h" - -#include +#include "enginedebug.h" using namespace Baloo; @@ -38,21 +37,24 @@ MDB_dbi DocumentIdDB::create(const char* name, MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, name, MDB_CREATE | MDB_INTEGERKEY, &dbi); - Q_ASSERT_X(rc == 0, "DocumentIdDB::create", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "DocumentIdDB::create" << name << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi DocumentIdDB::open(const char* name, MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, name, MDB_INTEGERKEY, &dbi); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "DocumentIdDB::open" << name << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "DocumentIdDB::create", mdb_strerror(rc)); return dbi; } @@ -70,7 +72,9 @@ val.mv_data = nullptr; int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "DocumentIdDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "DocumentIdDB::put" << mdb_strerror(rc); + } } bool DocumentIdDB::contains(quint64 docId) @@ -81,12 +85,14 @@ key.mv_size = sizeof(quint64); key.mv_data = static_cast(&docId); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "DocumentIdDB::contains" << docId << mdb_strerror(rc); + } return false; } - Q_ASSERT_X(rc == 0, "DocumentIdDB::contains", mdb_strerror(rc)); return true; } @@ -100,10 +106,9 @@ key.mv_data = static_cast(&docId); int rc = mdb_del(m_txn, m_dbi, &key, nullptr); - if (rc == MDB_NOTFOUND) { - return; + if (rc) { + qCDebug(ENGINE) << "DocumentIdDB::del" << docId << mdb_strerror(rc); } - Q_ASSERT_X(rc == 0, "DocumentIdDB::del", mdb_strerror(rc)); } QVector DocumentIdDB::fetchItems(int size) @@ -116,12 +121,12 @@ QVector vec; for (int i = 0; i < size; i++) { - MDB_val key; + MDB_val key{0, nullptr}; int rc = mdb_cursor_get(cursor, &key, nullptr, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "DocumentIdDB::fetchItems" << size << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "DocumentIdDB::fetchItems", mdb_strerror(rc)); quint64 id = *(static_cast(key.mv_data)); vec << id; @@ -135,7 +140,10 @@ { MDB_stat stat; int rc = mdb_stat(m_txn, m_dbi, &stat); - Q_ASSERT_X(rc == 0, "DocumentIdDB::size", mdb_strerror(rc)); + if (rc) { + qCDebug(ENGINE) << "DocumentIdDB::size" << mdb_strerror(rc); + return 0; + } return stat.ms_entries; } @@ -145,16 +153,16 @@ MDB_cursor* cursor; mdb_cursor_open(m_txn, m_dbi, &cursor); - MDB_val key = {0, nullptr}; - MDB_val val; + MDB_val key{0, nullptr}; + MDB_val val{0, nullptr}; QVector vec; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "DocumentTimeDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "DocumentTimeDB::toTestMap", mdb_strerror(rc)); const quint64 id = *(static_cast(key.mv_data)); vec << id; diff --git a/src/engine/documenttimedb.cpp b/src/engine/documenttimedb.cpp --- a/src/engine/documenttimedb.cpp +++ b/src/engine/documenttimedb.cpp @@ -19,6 +19,7 @@ */ #include "documenttimedb.h" +#include "enginedebug.h" using namespace Baloo; @@ -36,21 +37,24 @@ MDB_dbi DocumentTimeDB::create(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "documenttimedb", MDB_CREATE | MDB_INTEGERKEY, &dbi); - Q_ASSERT_X(rc == 0, "DocumentTimeDB::create", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "DocumentTimeDB::create" << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi DocumentTimeDB::open(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "documenttimedb", MDB_INTEGERKEY, &dbi); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "DocumentTimeDB::open" << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "DocumentTimeDB::create", mdb_strerror(rc)); return dbi; } @@ -68,7 +72,9 @@ val.mv_data = static_cast(const_cast(&info)); int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "DocumentTimeDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "DocumentTimeDB::put" << docId << mdb_strerror(rc); + } } DocumentTimeDB::TimeInfo DocumentTimeDB::get(quint64 docId) @@ -79,12 +85,14 @@ key.mv_size = sizeof(quint64); key.mv_data = &docId; - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "DocumentTimeDB::get" << docId << mdb_strerror(rc); + } return TimeInfo(); } - Q_ASSERT_X(rc == 0, "DocumentTimeDB::get", mdb_strerror(rc)); return *(static_cast(val.mv_data)); } @@ -98,10 +106,9 @@ key.mv_data = static_cast(&docId); int rc = mdb_del(m_txn, m_dbi, &key, nullptr); - if (rc == MDB_NOTFOUND) { - return; + if (rc) { + qCDebug(ENGINE) << "DocumentTimeDB::del" << docId << mdb_strerror(rc); } - Q_ASSERT_X(rc == 0, "DocumentTimeDB::del", mdb_strerror(rc)); } bool DocumentTimeDB::contains(quint64 docId) @@ -114,10 +121,12 @@ MDB_val val; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "DocumentTimeDB::contains" << docId << mdb_strerror(rc); + } return false; } - Q_ASSERT_X(rc == 0, "DocumentTimeDB::contains", mdb_strerror(rc)); return true; } @@ -133,10 +142,10 @@ QMap map; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "DocumentTimeDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "DocumentTimeDB::toTestMap", mdb_strerror(rc)); const quint64 id = *(static_cast(key.mv_data)); const TimeInfo ti = *(static_cast(val.mv_data)); diff --git a/src/engine/documenturldb.h b/src/engine/documenturldb.h --- a/src/engine/documenturldb.h +++ b/src/engine/documenturldb.h @@ -135,9 +135,10 @@ auto filePath = idFilenameDb.get(docId); auto fileName = QFile::decodeName(filePath.name); if (QFile::exists(fileName)) { - Q_ASSERT_X(idTreeDb.get(docId).isEmpty(), - "DocumentUrlDB::del", - "This folder still has sub-files in its cache. It cannot be deleted"); + if (!idTreeDb.get(docId).isEmpty()) { + qWarning() << "DocumentUrlDB::del" + << "This folder still has sub-files in its cache. It cannot be deleted"; + } } else { /* * FIXME: this is not an ideal solution we need to figure out how such currptions are diff --git a/src/engine/documenturldb.cpp b/src/engine/documenturldb.cpp --- a/src/engine/documenturldb.cpp +++ b/src/engine/documenturldb.cpp @@ -24,7 +24,6 @@ #include #include -#include using namespace Baloo; diff --git a/src/engine/fsutils.cpp b/src/engine/fsutils.cpp --- a/src/engine/fsutils.cpp +++ b/src/engine/fsutils.cpp @@ -21,8 +21,7 @@ */ #include "fsutils.h" - -#include +#include "enginedebug.h" #ifdef Q_OS_LINUX #include @@ -54,15 +53,15 @@ ulong flags = 0; const int fd = open(qPrintable(path), O_RDONLY); if (fd == -1) { - qWarning() << "Failed to open" << path << "to modify flags (" << errno << ")"; + qCWarning(ENGINE) << "Failed to open" << path << "to modify flags (" << errno << ")"; return; } if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == -1) { const int errno_ioctl = errno; // ignore ENOTTY, filesystem does not support attrs (and likely neither supports COW) if (errno_ioctl != ENOTTY) { - qWarning() << "ioctl error: failed to get file flags (" << errno_ioctl << ")"; + qCWarning(ENGINE) << "ioctl error: failed to get file flags (" << errno_ioctl << ")"; } close(fd); return; @@ -73,7 +72,7 @@ const int errno_ioctl = errno; // ignore EOPNOTSUPP, returned on filesystems not supporting COW if (errno_ioctl != EOPNOTSUPP) { - qWarning() << "ioctl error: failed to set file flags (" << errno_ioctl << ")"; + qCWarning(ENGINE) << "ioctl error: failed to set file flags (" << errno_ioctl << ")"; } close(fd); return; diff --git a/src/engine/idfilenamedb.cpp b/src/engine/idfilenamedb.cpp --- a/src/engine/idfilenamedb.cpp +++ b/src/engine/idfilenamedb.cpp @@ -19,6 +19,7 @@ */ #include "idfilenamedb.h" +#include "enginedebug.h" using namespace Baloo; @@ -36,21 +37,24 @@ MDB_dbi IdFilenameDB::create(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "idfilename", MDB_CREATE | MDB_INTEGERKEY, &dbi); - Q_ASSERT_X(rc == 0, "IdFilenameDB::create", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "IdFilenameDB::create" << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi IdFilenameDB::open(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "idfilename", MDB_INTEGERKEY, &dbi); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "IdFilenameDB::open" << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "IdFilenameDB::open", mdb_strerror(rc)); return dbi; } @@ -73,7 +77,9 @@ val.mv_data = static_cast(data.data()); int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "IdFilenameDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "IdFilenameDB::put" << mdb_strerror(rc); + } } IdFilenameDB::FilePath IdFilenameDB::get(quint64 docId) @@ -86,12 +92,14 @@ FilePath path; - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "IdfilenameDB::get" << docId << mdb_strerror(rc); + } return path; } - Q_ASSERT_X(rc == 0, "IdfilenameDB::get", mdb_strerror(rc)); path.parentId = static_cast(val.mv_data)[0]; path.name = QByteArray(static_cast(val.mv_data) + 8, val.mv_size - 8); @@ -107,12 +115,14 @@ key.mv_size = sizeof(quint64); key.mv_data = static_cast(&docId); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "IdfilenameDB::contains" << docId << mdb_strerror(rc); + } return false; } - Q_ASSERT_X(rc == 0, "IdfilenameDB::contains", mdb_strerror(rc)); return true; } @@ -125,7 +135,9 @@ key.mv_data = static_cast(&docId); int rc = mdb_del(m_txn, m_dbi, &key, nullptr); - Q_ASSERT_X(rc == 0, "IdfilenameDB::del", mdb_strerror(rc)); + if (rc) { + qCDebug(ENGINE) << "IdFilenameDB::del" << mdb_strerror(rc); + } } QMap IdFilenameDB::toTestMap() const @@ -139,10 +151,11 @@ QMap map; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "IdFilenameDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "IdFilenameDB::toTestMap", mdb_strerror(rc)); + const quint64 id = *(static_cast(key.mv_data)); diff --git a/src/engine/idtreedb.cpp b/src/engine/idtreedb.cpp --- a/src/engine/idtreedb.cpp +++ b/src/engine/idtreedb.cpp @@ -19,9 +19,9 @@ */ #include "idtreedb.h" +#include "enginedebug.h" #include "postingiterator.h" -#include #include using namespace Baloo; @@ -36,21 +36,24 @@ MDB_dbi IdTreeDB::create(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "idtree", MDB_CREATE | MDB_INTEGERKEY, &dbi); - Q_ASSERT_X(rc == 0, "IdTreeDB::create", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "IdTreeDB::create" << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi IdTreeDB::open(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "idtree", MDB_INTEGERKEY, &dbi); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "IdTreeDB::open" << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "IdTreeDB::open", mdb_strerror(rc)); return dbi; } @@ -69,21 +72,25 @@ val.mv_data = static_cast(const_cast(subDocIds.constData())); int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "IdTreeDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "IdTreeDB::put" << mdb_strerror(rc); + } } QVector IdTreeDB::get(quint64 docId) { MDB_val key; key.mv_size = sizeof(quint64); key.mv_data = static_cast(&docId); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "IdTreeDB::get" << docId << mdb_strerror(rc); + } return QVector(); } - Q_ASSERT_X(rc == 0, "IdTreeeDB::get", mdb_strerror(rc)); // FIXME: This still makes a copy of the data. Perhaps we can avoid that? QVector list(val.mv_size / sizeof(quint64)); @@ -99,7 +106,9 @@ key.mv_data = static_cast(&docId); int rc = mdb_del(m_txn, m_dbi, &key, nullptr); - Q_ASSERT_X(rc == 0, "IdTreeDB::del", mdb_strerror(rc)); + if (rc) { + qCDebug(ENGINE) << "IdTreeDB::del" << mdb_strerror(rc); + } } // @@ -169,10 +178,10 @@ QMap> map; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "PostingDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "PostingDB::toTestMap", mdb_strerror(rc)); const quint64 id = *(static_cast(key.mv_data)); diff --git a/src/engine/mtimedb.cpp b/src/engine/mtimedb.cpp --- a/src/engine/mtimedb.cpp +++ b/src/engine/mtimedb.cpp @@ -19,6 +19,7 @@ */ #include "mtimedb.h" +#include "enginedebug.h" #include "vectorpostingiterator.h" #include @@ -38,21 +39,24 @@ MDB_dbi MTimeDB::create(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "mtimedb", MDB_CREATE | MDB_INTEGERKEY | MDB_DUPSORT | MDB_DUPFIXED | MDB_INTEGERDUP, &dbi); - Q_ASSERT_X(rc == 0, "MTimeDB::create", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "MTimeDB::create" << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi MTimeDB::open(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "mtimedb", MDB_INTEGERKEY | MDB_DUPSORT | MDB_DUPFIXED | MDB_INTEGERDUP, &dbi); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "MTimeDB::open" << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "MTimeDB::open", mdb_strerror(rc)); return dbi; } @@ -71,7 +75,9 @@ val.mv_data = static_cast(&docId); int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "MTimeDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "MTimeDB::put" << mdb_strerror(rc); + } } QVector MTimeDB::get(quint32 mtime) @@ -87,22 +93,24 @@ MDB_cursor* cursor; mdb_cursor_open(m_txn, m_dbi, &cursor); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_cursor_get(cursor, &key, &val, MDB_SET_RANGE); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "MTimeDB::get" << mtime << mdb_strerror(rc); + } mdb_cursor_close(cursor); return values; } - Q_ASSERT_X(rc == 0, "MTimeDB::get", mdb_strerror(rc)); values << *static_cast(val.mv_data); while (1) { rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT_DUP); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "MTimeDB::get (loop)" << mtime << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "MTimeDB::get while", mdb_strerror(rc)); values << *static_cast(val.mv_data); } @@ -127,10 +135,9 @@ val.mv_data = static_cast(&docId); int rc = mdb_del(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { - return; + if (rc) { + qCDebug(ENGINE) << "MTimeDB::del" << mtime << docId << mdb_strerror(rc); } - Q_ASSERT_X(rc == 0, "DocumentDB::del", mdb_strerror(rc)); } // @@ -150,35 +157,35 @@ MDB_cursor* cursor; mdb_cursor_open(m_txn, m_dbi, &cursor); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_cursor_get(cursor, &key, &val, MDB_SET_RANGE); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "MTimeDB::iter" << mtime << mdb_strerror(rc); mdb_cursor_close(cursor); return nullptr; } - Q_ASSERT_X(rc == 0, "MTimeDB::iter", mdb_strerror(rc)); QVector results; results << *static_cast(val.mv_data); if (com == GreaterEqual) { while (1) { rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "MTimeDB::iter (loop)" << mtime << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "MTimeDB::iter >=", mdb_strerror(rc)); results << *static_cast(val.mv_data); } } else { while (1) { rc = mdb_cursor_get(cursor, &key, &val, MDB_PREV); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "MTimeDB::iter (loop)" << mtime << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "MTimeDB::iter >=", mdb_strerror(rc)); quint64 id = *static_cast(val.mv_data); results.push_front(id); @@ -203,23 +210,23 @@ MDB_cursor* cursor; mdb_cursor_open(m_txn, m_dbi, &cursor); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_cursor_get(cursor, &key, &val, MDB_SET_RANGE); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "MTimeDB::iterRange" << beginTime << endTime << mdb_strerror(rc); mdb_cursor_close(cursor); return nullptr; } - Q_ASSERT_X(rc == 0, "MTimeDB::iterRange", mdb_strerror(rc)); QVector results; results << *static_cast(val.mv_data); while (1) { rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "MTimeDB::iterRange" << beginTime << endTime << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "MTimeDB::iter >=", mdb_strerror(rc)); quint32 time = *static_cast(key.mv_data); if (time > endTime) { @@ -245,10 +252,10 @@ QMap map; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "MTimeDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "MTimeDB::toTestMap", mdb_strerror(rc)); const quint32 time = *(static_cast(key.mv_data)); const quint64 id = *(static_cast(val.mv_data)); diff --git a/src/engine/phraseanditerator.cpp b/src/engine/phraseanditerator.cpp --- a/src/engine/phraseanditerator.cpp +++ b/src/engine/phraseanditerator.cpp @@ -20,8 +20,6 @@ #include "phraseanditerator.h" -#include - using namespace Baloo; PhraseAndIterator::PhraseAndIterator(const QVector& iterators) diff --git a/src/engine/positiondb.cpp b/src/engine/positiondb.cpp --- a/src/engine/positiondb.cpp +++ b/src/engine/positiondb.cpp @@ -18,13 +18,12 @@ * */ +#include "enginedebug.h" #include "positiondb.h" #include "positioncodec.h" #include "positioninfo.h" #include "postingiterator.h" -#include - using namespace Baloo; PositionDB::PositionDB(MDB_dbi dbi, MDB_txn* txn) @@ -41,21 +40,24 @@ MDB_dbi PositionDB::create(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "positiondb", MDB_CREATE, &dbi); - Q_ASSERT_X(rc == 0, "PositionDB::create", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "PositionDB::create" << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi PositionDB::open(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "positiondb", 0, &dbi); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "PositionDB::open" << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "PositionDB::open", mdb_strerror(rc)); return dbi; } @@ -77,7 +79,9 @@ val.mv_data = static_cast(data.data()); int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "PositionDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "PositionDB::put" << mdb_strerror(rc); + } } QVector PositionDB::get(const QByteArray& term) @@ -88,12 +92,14 @@ key.mv_size = term.size(); key.mv_data = static_cast(const_cast(term.constData())); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "PositionDB::get" << term << mdb_strerror(rc); + } return QVector(); } - Q_ASSERT_X(rc == 0, "PositionDB::get", mdb_strerror(rc)); QByteArray data = QByteArray::fromRawData(static_cast(val.mv_data), val.mv_size); @@ -110,10 +116,10 @@ key.mv_data = static_cast(const_cast(term.constData())); int rc = mdb_del(m_txn, m_dbi, &key, nullptr); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "PositionDB::del" << term << mdb_strerror(rc); return; } - Q_ASSERT_X(rc == 0, "PositionDB::del", mdb_strerror(rc)); } // @@ -165,12 +171,12 @@ key.mv_size = term.size(); key.mv_data = static_cast(const_cast(term.constData())); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "PositionDB::iter" << term << mdb_strerror(rc); return nullptr; } - Q_ASSERT_X(rc == 0, "PositionDB::iter", mdb_strerror(rc)); return new DBPositionIterator(static_cast(val.mv_data), val.mv_size); } @@ -186,10 +192,10 @@ QMap> map; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "PostingDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "PostingDB::toTestMap", mdb_strerror(rc)); const QByteArray ba(static_cast(key.mv_data), key.mv_size); const QVector vinfo = PositionCodec().decode(QByteArray(static_cast(val.mv_data), val.mv_size)); diff --git a/src/engine/postingdb.cpp b/src/engine/postingdb.cpp --- a/src/engine/postingdb.cpp +++ b/src/engine/postingdb.cpp @@ -18,12 +18,11 @@ * */ +#include "enginedebug.h" #include "postingdb.h" #include "orpostingiterator.h" #include "postingcodec.h" -#include - using namespace Baloo; PostingDB::PostingDB(MDB_dbi dbi, MDB_txn* txn) @@ -40,21 +39,24 @@ MDB_dbi PostingDB::create(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "postingdb", MDB_CREATE, &dbi); - Q_ASSERT_X(rc == 0, "PostingDB::create", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "PostingDB::create" << mdb_strerror(rc); + return 0; + } return dbi; } MDB_dbi PostingDB::open(MDB_txn* txn) { - MDB_dbi dbi; + MDB_dbi dbi = 0; int rc = mdb_dbi_open(txn, "postingdb", 0, &dbi); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCWarning(ENGINE) << "PostingDB::open" << mdb_strerror(rc); return 0; } - Q_ASSERT_X(rc == 0, "PostingDB::open", mdb_strerror(rc)); return dbi; } @@ -76,7 +78,9 @@ val.mv_data = static_cast(arr.data()); int rc = mdb_put(m_txn, m_dbi, &key, &val, 0); - Q_ASSERT_X(rc == 0, "PostingDB::put", mdb_strerror(rc)); + if (rc) { + qCWarning(ENGINE) << "PostingDB::put" << mdb_strerror(rc); + } } PostingList PostingDB::get(const QByteArray& term) @@ -87,12 +91,14 @@ key.mv_size = term.size(); key.mv_data = static_cast(const_cast(term.constData())); - MDB_val val; + MDB_val val{0, nullptr}; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "PostingDB::get" << term << mdb_strerror(rc); + } return PostingList(); } - Q_ASSERT_X(rc == 0, "PostingDB::get", mdb_strerror(rc)); QByteArray arr = QByteArray::fromRawData(static_cast(val.mv_data), val.mv_size); @@ -109,10 +115,10 @@ key.mv_data = static_cast(const_cast(term.constData())); int rc = mdb_del(m_txn, m_dbi, &key, nullptr); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "PostingDB::del" << term << mdb_strerror(rc); return; } - Q_ASSERT_X(rc == 0, "PostingDB::del", mdb_strerror(rc)); } QVector< QByteArray > PostingDB::fetchTermsStartingWith(const QByteArray& term) @@ -126,17 +132,17 @@ QVector terms; int rc = mdb_cursor_get(cursor, &key, nullptr, MDB_SET_RANGE); - while (rc != MDB_NOTFOUND) { - Q_ASSERT_X(rc == 0, "PostingDB::fetchTermsStartingWith", mdb_strerror(rc)); - + while (rc == 0) { const QByteArray arr(static_cast(key.mv_data), key.mv_size); if (!arr.startsWith(term)) { break; } terms << arr; rc = mdb_cursor_get(cursor, &key, nullptr, MDB_NEXT); } - Q_ASSERT_X(rc == 0, "PostingDB::fetchTermsStartingWith", mdb_strerror(rc)); + if (rc != MDB_NOTFOUND) { + qCDebug(ENGINE) << "PostingDB::fetchTermsStartingWith" << mdb_strerror(rc); + } mdb_cursor_close(cursor); return terms; @@ -161,10 +167,10 @@ MDB_val val; int rc = mdb_get(m_txn, m_dbi, &key, &val); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "PostingDB::iter" << term << mdb_strerror(rc); return nullptr; } - Q_ASSERT_X(rc == 0, "PostingDB::iter", mdb_strerror(rc)); return new DBPostingIterator(val.mv_data, val.mv_size); } @@ -214,9 +220,7 @@ MDB_val val; int rc = mdb_cursor_get(cursor, &key, &val, MDB_SET_RANGE); - while (rc != MDB_NOTFOUND) { - Q_ASSERT_X(rc == 0, "PostingDB::regexpIter", mdb_strerror(rc)); - + while (rc == 0) { const QByteArray arr(static_cast(key.mv_data), key.mv_size); if (!arr.startsWith(prefix)) { break; @@ -226,8 +230,10 @@ } rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); } - if (rc != MDB_NOTFOUND) { - Q_ASSERT_X(rc == 0, "PostingDB::regexpIter", mdb_strerror(rc)); + + if (rc) { + qCCritical(ENGINE) << "PostingDB::regexpIter" << mdb_strerror(rc); + return nullptr; } mdb_cursor_close(cursor); @@ -279,10 +285,10 @@ QMap map; while (1) { int rc = mdb_cursor_get(cursor, &key, &val, MDB_NEXT); - if (rc == MDB_NOTFOUND) { + if (rc) { + qCDebug(ENGINE) << "PostingDB::toTestMap" << mdb_strerror(rc); break; } - Q_ASSERT_X(rc == 0, "PostingDB::toTestMap", mdb_strerror(rc)); const QByteArray ba(static_cast(key.mv_data), key.mv_size); const PostingList plist = PostingCodec().decode(QByteArray(static_cast(val.mv_data), val.mv_size)); diff --git a/src/engine/transaction.h b/src/engine/transaction.h --- a/src/engine/transaction.h +++ b/src/engine/transaction.h @@ -95,7 +95,7 @@ // Transaction handling // void commit(); - void abort(); + void abortTransaction(); bool hasChanges() const; // @@ -127,9 +127,9 @@ Transaction(const Transaction& rhs) = delete; const DatabaseDbis& m_dbis; - MDB_txn* m_txn; - MDB_env* m_env; - WriteTransaction* m_writeTrans; + MDB_txn *m_txn = nullptr; + MDB_env *m_env = nullptr; + WriteTransaction *m_writeTrans = nullptr; friend class DatabaseSanitizerImpl; friend class DBState; // for testing diff --git a/src/engine/transaction.cpp b/src/engine/transaction.cpp --- a/src/engine/transaction.cpp +++ b/src/engine/transaction.cpp @@ -39,6 +39,8 @@ #include "database.h" #include "databasesize.h" +#include "enginedebug.h" + #include #include @@ -51,7 +53,10 @@ { uint flags = type == ReadOnly ? MDB_RDONLY : 0; int rc = mdb_txn_begin(db.m_env, nullptr, flags, &m_txn); - Q_ASSERT_X(rc == 0, "Transaction", mdb_strerror(rc)); + if (rc) { + qCDebug(ENGINE) << "Transaction" << mdb_strerror(rc); + return; + } if (type == ReadWrite) { m_writeTrans = new WriteTransaction(m_dbis, m_txn); @@ -65,11 +70,12 @@ Transaction::~Transaction() { - if (m_writeTrans) - qWarning() << "Closing an active WriteTransaction without calling abort/commit"; + if (m_writeTrans) { + qWarning(ENGINE) << "Closing an active WriteTransaction without calling abort/commit"; + } if (m_txn) { - abort(); + abortTransaction(); } } @@ -154,7 +160,11 @@ bool Transaction::hasChanges() const { Q_ASSERT(m_txn); - Q_ASSERT(m_writeTrans); + if (!m_writeTrans) { + qCWarning(ENGINE) << "m_writeTrans is null"; + return false; + } + return m_writeTrans->hasChanges(); } @@ -228,25 +238,34 @@ { Q_ASSERT(m_txn); Q_ASSERT(doc.id() > 0); - Q_ASSERT(m_writeTrans); + if (!m_writeTrans) { + qCWarning(ENGINE) << "m_writeTrans is null"; + return; + } m_writeTrans->addDocument(doc); } void Transaction::removeDocument(quint64 id) { Q_ASSERT(m_txn); Q_ASSERT(id > 0); - Q_ASSERT(m_writeTrans); + if (!m_writeTrans) { + qCWarning(ENGINE) << "m_writeTrans is null"; + return; + } m_writeTrans->removeDocument(id); } void Transaction::removeRecursively(quint64 id) { Q_ASSERT(m_txn); Q_ASSERT(id > 0); - Q_ASSERT(m_writeTrans); + if (!m_writeTrans) { + qCWarning(ENGINE) << "m_writeTrans is null"; + return; + } m_writeTrans->removeRecursively(id); } @@ -256,27 +275,39 @@ Q_ASSERT(m_txn); Q_ASSERT(doc.id() > 0); Q_ASSERT(m_writeTrans); - Q_ASSERT_X(hasDocument(doc.id()), "Transaction::replaceDocument", "Document does not exist"); + if (!hasDocument(doc.id())) { + qCDebug(ENGINE) << "Transaction::replaceDocument" << "Document does not exist"; + } + + if (!m_writeTrans) { + qCWarning(ENGINE) << "m_writeTrans is null"; + return; + } m_writeTrans->replaceDocument(doc, operations); } void Transaction::commit() { Q_ASSERT(m_txn); - Q_ASSERT(m_writeTrans); + if (!m_writeTrans) { + qCWarning(ENGINE) << "m_writeTrans is null"; + return; + } m_writeTrans->commit(); delete m_writeTrans; m_writeTrans = nullptr; int rc = mdb_txn_commit(m_txn); - Q_ASSERT_X(rc == 0, "Transaction::commit", mdb_strerror(rc)); + if (rc) { + qCDebug(ENGINE) << "Transaction::commit" << mdb_strerror(rc); + } m_txn = nullptr; } -void Transaction::abort() +void Transaction::abortTransaction() { Q_ASSERT(m_txn); @@ -316,7 +347,10 @@ if (query.op() == EngineQuery::Phrase) { const auto subQueries = query.subQueries(); for (const EngineQuery& q : subQueries) { - Q_ASSERT_X(q.leaf(), "Transaction::toPostingIterator", "Phrase queries must contain leaf queries"); + if (!q.leaf()) { + qCDebug(ENGINE) << "Transaction::toPostingIterator" << "Phrase queries must contain leaf queries"; + continue; + } vec << positionDb.iter(q.term()); } diff --git a/src/file/extractorprocess.cpp b/src/file/extractorprocess.cpp --- a/src/file/extractorprocess.cpp +++ b/src/file/extractorprocess.cpp @@ -20,8 +20,9 @@ #include "extractorprocess.h" +#include "baloodebug.h" + #include -#include #include using namespace Baloo; @@ -91,7 +92,7 @@ break; default: - qCritical() << "Got unknown result from extractor" << command << arg; + qCritical(BALOO) << "Got unknown result from extractor" << command << arg; } } } diff --git a/src/file/fileindexscheduler.cpp b/src/file/fileindexscheduler.cpp --- a/src/file/fileindexscheduler.cpp +++ b/src/file/fileindexscheduler.cpp @@ -19,6 +19,7 @@ #include "fileindexscheduler.h" +#include "baloodebug.h" #include "firstrunindexer.h" #include "newfileindexer.h" #include "modifiedfileindexer.h" @@ -33,7 +34,6 @@ #include #include -#include #include using namespace Baloo; @@ -181,9 +181,9 @@ void FileIndexScheduler::powerManagementStatusChanged(bool isOnBattery) { - qDebug() << "Power state changed"; + qCDebug(BALOO) << "Power state changed"; if (isOnBattery && m_indexerState == ContentIndexing) { - qDebug() << "On battery stopping content indexer"; + qCDebug(BALOO) << "On battery, stopping content indexer"; m_contentIndexer->quit(); //TODO: Maybe we can add a special state for suspended due to being on battery. m_indexerState = Idle; @@ -196,14 +196,14 @@ void FileIndexScheduler::setSuspend(bool suspend) { if (suspend) { - qDebug() << "Suspending"; + qCDebug(BALOO) << "Suspending"; if (m_indexerState == ContentIndexing) { m_contentIndexer->quit(); } m_indexerState = Suspended; Q_EMIT stateChanged(m_indexerState); } else { - qDebug() << "Resuming"; + qCDebug(BALOO) << "Resuming"; m_indexerState = Idle; // No need to emit here we'll be emitting in scheduling scheduleIndexing(); diff --git a/src/file/indexcleaner.cpp b/src/file/indexcleaner.cpp --- a/src/file/indexcleaner.cpp +++ b/src/file/indexcleaner.cpp @@ -24,7 +24,8 @@ #include "transaction.h" #include "idutils.h" -#include +#include "baloodebug.h" + #include #include @@ -52,19 +53,19 @@ QString url = tr.documentUrl(id); if (!QFile::exists(url)) { - qDebug() << "not exists: " << url; + qCDebug(BALOO) << "not exists: " << url; return true; } if (!m_config->shouldBeIndexed(url)) { - qDebug() << "should not be indexed: " << url; + qCDebug(BALOO) << "should not be indexed: " << url; return true; } // FIXME: This mimetype is not completely accurate! QString mimetype = mimeDb.mimeTypeForFile(url, QMimeDatabase::MatchExtension).name(); if (!m_config->shouldMimeTypeBeIndexed(mimetype)) { - qDebug() << "mimetype should not be indexed: " << url << mimetype; + qCDebug(BALOO) << "mimetype should not be indexed: " << url << mimetype; return true; } diff --git a/src/file/main.cpp b/src/file/main.cpp --- a/src/file/main.cpp +++ b/src/file/main.cpp @@ -24,7 +24,6 @@ #include #include -#include #include #include diff --git a/src/file/metadatamover.cpp b/src/file/metadatamover.cpp --- a/src/file/metadatamover.cpp +++ b/src/file/metadatamover.cpp @@ -191,7 +191,7 @@ return; } - qDebug() << "MetadataMover::watcherServiceUnregistered" << itService.key(); + qCDebug(BALOO) << "MetadataMover::watcherServiceUnregistered" << itService.key(); delete itService.value(); m_watcherApplications.erase(itService);