--- a/src/index/indexer.cpp
+++ b/src/index/indexer.cpp
@@ -64,6 +64,7 @@
deleteZ(m_fsindexer);
m_fsindexer = new FsIndexer(m_config, &m_db, m_updater);
if (!m_fsindexer || !m_fsindexer->index()) {
+ m_db.close();
return false;
}
}
@@ -72,6 +73,7 @@
deleteZ(m_beagler);
m_beagler = new BeagleQueueIndexer(m_config, &m_db, m_updater);
if (!m_beagler || !m_beagler->index()) {
+ m_db.close();
return false;
}
}
@@ -79,8 +81,10 @@
if (typestorun == IxTAll) {
// Get rid of all database entries that don't exist in the
// filesystem anymore. Only if all *configured* indexers ran.
- if (m_updater && !m_updater->update(DbIxStatus::DBIXS_PURGE, string()))
+ if (m_updater && !m_updater->update(DbIxStatus::DBIXS_PURGE, string())) {
+ m_db.close();
return false;
+ }
m_db.purge();
}