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