Mercurial > dovecot > core-2.2
changeset 11989:ab8ca4ded5ac
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.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 12 Aug 2010 16:58:45 +0100 |
parents | 117053f20528 |
children | 4d8ae218af73 |
files | src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c |
diffstat | 2 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c Thu Aug 12 16:53:04 2010 +0100 +++ b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c Thu Aug 12 16:58:45 2010 +0100 @@ -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 @@ 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);
--- a/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c Thu Aug 12 16:53:04 2010 +0100 +++ b/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c Thu Aug 12 16:58:45 2010 +0100 @@ -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 @@ } } + 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);