Mailbox deletion race: folders and files are never deleted
Jeroen van Meeuwen (Kolab Systems)
vanmeeuwen at kolabsys.com
Thu Feb 26 14:31:20 EST 2015
On 2015-02-26 16:51, Samir Aguiar wrote:
> Proposed solution:
> - Patch the mailbox_close() function to reload the index before trying
> to
> clean the files (and merge the current index changes with the ones
> found)
> - Because the above would still be skipped when shutting down Cyrus:
> expand
> cyr_expire to find mailboxes with the deleted flag set (by looping
> through the
> filesystem, and not by using the database) and try to remove them. This
> could
> then be run periodically by administrators.
>
> What do you think?
>
Please do not take my word for it, but I think Cyrus IMAP 2.5 introduces
a state flag of MBTYPE_DELETE for mailboxes [1] in the actual mboxlist,
so the related functions would still be able to find it after the facts
of the case.
IIRC, I ran in to this (particular MBTYPE) because it purges ACLs, and
rendered (discrete) murder topologies unable to ctl_mboxlist -m (as well
as made ctl_mboxlist -d segfault).
I think the intention is exactly what you describe is the scenario, but
if it is I'm not certain it also properly addresses it.
Kind regards,
Jeroen van Meeuwen
[1]
https://git.cyrus.foundation/diffusion/I/browse/master/imap/mboxlist.h;4571c101e542f169cfd3b70347b47eaea8f2deea$70
--
Systems Architect, Kolab Systems AG
e: vanmeeuwen at kolabsys.com
m: +41 79 951 9003
w: https://kolabsystems.com
pgp: 9342 BF08
More information about the Cyrus-devel
mailing list