From: Timo Sirainen Date: Mon, 5 Feb 2018 20:21:13 +0000 (+0200) Subject: fts: Don't reindex FTS mails if .cache file is deleted X-Git-Tag: 2.3.9~2369 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f5a00a8bc68cb246bfe9265e7f66856db98f5f7d;p=thirdparty%2Fdovecot%2Fcore.git fts: Don't reindex FTS mails if .cache file is deleted This means that if fts is enabled, "doveadm index" no longer adds mails to dovecot.index.cache if it's deleted. However, it was rarely used for that purpose. More likely due to a corrupted cache file all the mails were unnecessarily being opened and reindexed. --- diff --git a/src/plugins/fts/fts-storage.c b/src/plugins/fts/fts-storage.c index 4b68663097..deda167854 100644 --- a/src/plugins/fts/fts-storage.c +++ b/src/plugins/fts/fts-storage.c @@ -109,9 +109,10 @@ fts_mailbox_get_status(struct mailbox *box, enum mailbox_status_items items, if (fts_mailbox_get_last_cached_seq(box, &seq) < 0) return -1; - /* use whichever is smaller */ - if (status_r->last_cached_seq > seq) - status_r->last_cached_seq = seq; + /* Always use the FTS's last_cached_seq. This is because we + don't want to reindex all mails to FTS if .cache file is + deleted. */ + status_r->last_cached_seq = seq; } return 0; }