From 24f6dbbcaf6f58104b93007a7c8768caf1d6686b Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 12 Aug 2010 16:58:45 +0100 Subject: [PATCH] dbox: Reset cache files when rebuilding indexes. This is especially important if there are broken cached GUIDs for messages, which will cause GUID mismatches when trying to expunge messages. --- src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c | 4 ++++ src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c index 161f5c924a..68c2efe0e3 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c +++ b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c @@ -6,6 +6,7 @@ #include "istream.h" #include "hash.h" #include "str.h" +#include "mail-cache.h" #include "dbox-sync-rebuild.h" #include "mail-namespace.h" #include "mdbox-storage.h" @@ -521,6 +522,9 @@ rebuild_mailbox(struct mdbox_storage_rebuild_context *ctx, return -1; } + /* reset cache, just in case it contains invalid data */ + mail_cache_reset(box->cache); + rebuild_ctx = dbox_sync_index_rebuild_init(&mbox->box, view, trans); mdbox_header_update(rebuild_ctx, mbox); rebuild_mailbox_multi(ctx, rebuild_ctx, mbox, view, trans); diff --git a/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c b/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c index 4a02da9888..b2f2e86f13 100644 --- a/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c +++ b/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c @@ -3,6 +3,7 @@ #include "lib.h" #include "array.h" #include "dbox-sync-rebuild.h" +#include "mail-cache.h" #include "sdbox-storage.h" #include "sdbox-file.h" #include "sdbox-sync.h" @@ -176,6 +177,8 @@ int sdbox_sync_index_rebuild(struct sdbox_mailbox *mbox, bool force) } } + mail_cache_reset(mbox->box.cache); + view = mail_index_view_open(mbox->box.index); trans = mail_index_transaction_begin(view, MAIL_INDEX_TRANSACTION_FLAG_EXTERNAL); -- 2.47.3