Moving mailboxes in Cyrus Murder leaves mails behind on source server
Wolfgang Breyha
wbreyha at gmx.net
Mon May 12 10:28:08 EDT 2014
Hi!
Peter Bücker wrote, on 23/07/13 16:33:
> Hi all,
>
> We're having an issue with our Cyrus Murder environment when moving
> mailboxes from one backend to another backend. Some mails are left
> behind on the source server while we think they should be removed. We
> issue the rename by using "cyradm" on the source server with the
> following command:
>
> oldserver> rename user.foo user.foo newserver!default
I came across your pretty old, but unanswered posting because I searched for
troubles with...
> disconnect_on_vanished_mailbox: 1
... which causes the same troubles as you see on your murder.
We also see these troubles with 2.4.17 if a user or admin renames or "moves" a
mailbox while keeping a lock to this mailbox in another connection.
If I got it right
mailbox.c:mailbox_delete()
marks the mailbox as deleted in the mailboxes.db and "waits" until
mailbox_close() is called with the last lock which closes and removes the
mailbox then.
This failes IMO in the case disconnect_on_vanished_mailbox == true because
imapd errors out with a fatal() call without calling mailbox_close(). If this
connection held the very last lock on this mailbox it ends up without being
removed from filesystem.
For all the leftovers I see in the filesystem I find a
Mailbox user.xxxx.xxxxxx has been (re)moved out from under client
in the logs.
Most likely it's recommended not to use disconnect_on_vanished_mailbox in the
current implementation.
Greetings, Wolfgang
--
Wolfgang Breyha <wbreyha at gmx.net> | http://www.blafasel.at/
Vienna University Computer Center | Austria
More information about the Info-cyrus
mailing list