From: Timo Sirainen Date: Wed, 23 Nov 2016 15:14:48 +0000 (+0200) Subject: imapc: Fix assert that checks if mail is expunged locally. X-Git-Tag: 2.2.27~67 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5e21c15a7f53eccfe6da5f1bcb435d4050821aca;p=thirdparty%2Fdovecot%2Fcore.git imapc: Fix assert that checks if mail is expunged locally. The EXPUNGE may have been sent while imapc_sync_index() was issuing remote imapc commands. It would end up being in delayed_expunged_uids, so the assert needs to check that too. Fixes: Panic: file imapc-sync.c: line 290 (imapc_initial_sync_check): assertion failed: (mail_index_is_expunged(view, lseq)) --- diff --git a/src/lib-storage/index/imapc/imapc-sync.c b/src/lib-storage/index/imapc/imapc-sync.c index fa3e66f625..4d94f9e36f 100644 --- a/src/lib-storage/index/imapc/imapc-sync.c +++ b/src/lib-storage/index/imapc/imapc-sync.c @@ -287,7 +287,8 @@ imapc_initial_sync_check(struct imapc_sync_context *ctx, bool nooped) break; } /* it's already expunged and we should have marked it */ - i_assert(mail_index_is_expunged(view, lseq)); + i_assert(mail_index_is_expunged(view, lseq) || + seq_range_exists(&ctx->mbox->delayed_expunged_uids, luid)); lseq++; } else { /* message doesn't exist in index, but exists in