From 642ea759bcd9793f5500b24b30658b5e6f2e8a77 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Tue, 12 Mar 2019 16:10:02 +0100 Subject: [PATCH] Index: make sure that -k and -K always have effect. Set explicit reason when failure is due to interruption --- src/index/indexer.cpp | 6 +++++- src/index/recollindex.cpp | 21 +++++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/index/indexer.cpp b/src/index/indexer.cpp index c4d907b0..76c64d09 100644 --- a/src/index/indexer.cpp +++ b/src/index/indexer.cpp @@ -123,7 +123,11 @@ bool ConfIndexer::index(bool resetbefore, ixType typestorun, int flags) deleteZ(m_fsindexer); m_fsindexer = new FsIndexer(m_config, &m_db, m_updater); if (!m_fsindexer || !m_fsindexer->index(flags)) { - addIdxReason("indexer", "Index creation failed. See log"); + if (stopindexing) { + addIdxReason("indexer", "Indexing was interrupted."); + } else { + addIdxReason("indexer", "Index creation failed. See log."); + } m_db.close(); return false; } diff --git a/src/index/recollindex.cpp b/src/index/recollindex.cpp index 5a49486d..c5c272ec 100644 --- a/src/index/recollindex.cpp +++ b/src/index/recollindex.cpp @@ -690,19 +690,28 @@ int main(int argc, char **argv) bool rezero((op_flags & OPT_z) != 0); bool inPlaceReset((op_flags & OPT_Z) != 0); - // We do not retry previously failed files by default. If -k is - // set, we do. If the checker script says so, we do too. + // The default is not to retry previously failed files by default. + // If -k is set, we do. + // If the checker script says so, we do too, except if -K is set. int indexerFlags = ConfIndexer::IxFNoRetryFailed; if (op_flags & OPT_k) { indexerFlags &= ~ConfIndexer::IxFNoRetryFailed; } else { - if (checkRetryFailed(config, false)) { - LOGDEB("recollindex: files in error will be retried\n"); - indexerFlags &= ~ConfIndexer::IxFNoRetryFailed; + if (op_flags & OPT_K) { + indexerFlags |= ConfIndexer::IxFNoRetryFailed; } else { - LOGDEB("recollindex: files in error will not be retried\n"); + if (checkRetryFailed(config, false)) { + indexerFlags &= ~ConfIndexer::IxFNoRetryFailed; + } else { + indexerFlags |= ConfIndexer::IxFNoRetryFailed; + } } } + if (indexerFlags & ConfIndexer::IxFNoRetryFailed) { + LOGDEB("recollindex: files in error will not be retried\n"); + } else { + LOGDEB("recollindex: files in error will be retried\n"); + } Pidfile pidfile(config->getPidfile()); updater = new MyUpdater(config);