]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
virtual: Expunge virtual mails if backend box is deleted
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 5 Jul 2017 11:24:49 +0000 (14:24 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 7 Jul 2017 06:59:54 +0000 (09:59 +0300)
When mail is added to a mailbox and then deleted, expunge
the sequences from virtual index in sync.

Fixes Error: Unexpectedly lost Mailbox ID 4

src/plugins/virtual/virtual-sync.c

index 4e56b62beb069bc3c27832b557ba3bc4e973d2c9..8db401265e839b7634c0a5aad7ed63289360d1d1 100644 (file)
@@ -1517,11 +1517,8 @@ virtual_sync_apply_existing_appends(struct virtual_sync_context *ctx)
                        bbox = virtual_backend_box_lookup(ctx->mbox,
                                                          vrec->mailbox_id);
                        if (bbox == NULL) {
-                               mail_storage_set_critical(
-                                       ctx->mbox->box.storage,
-                                       "%s: Mailbox ID %u unexpectedly lost",
-                                       ctx->mbox->box.vname, vrec->mailbox_id);
-                               return -1;
+                               mail_index_expunge(ctx->trans, seq);
+                               continue;
                        }
                }
                array_append(&bbox->uids, &uidmap, 1);