]> 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)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 18 Jul 2017 10:42:20 +0000 (13:42 +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 08f3b71ef3b005faf513987c3fdedbcf830b71a3..e86ec6dc2c20b8ca6471f961b25f79364f60fa84 100644 (file)
@@ -1516,11 +1516,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);