Deleted mailbox remains in spool directory when using Open-Xchange client
Peter Bücker
buecker at phil.hhu.de
Mon Sep 23 05:12:49 EDT 2013
Dear all,
we're running a Cyrus Murder with 6 backend servers, two frontend
servers and one MUPDATE master. All servers are compiled from vanilla
source 2.4.17 and run on Debian Wheezy. Delayed delete / expunge is
activated:
expunge_mode: delayed
delete_mode: delayed
This works fine so far. Several of our users however use Open-Xchange
(version 7.2.2) with IMAP as their mail client. When these users delete
a mailbox, Open-Xchange will copy the mails from that mailbox to a new
folder within the trash folder and delete the mailbox afterwards. Cyrus
then reports the mailbox was deleted:
Sep 23 10:18:25 s_local at cyrus-be5 cyrus/imap[29267]: Rename:
user.foobar.Test -> DELETED.user.foobar.Test.523FF951
Sep 23 10:18:25 s_local at cyrus-be5 cyrus/imap[29267]: Deleted mailbox
user.foobar.Test
But still the mailbox is left behind in the filesystem
(/var/spool/cyrus-imapd/f/user/foobar/Test/ in our case) with all mails
and cyrus.* files. It is however removed from the mailbox database.
This was not the behavior we expected. We expected that delayed_delete
would move the mailbox to DELETED namespace, thus deleting the original
folder. Instead we see that a copy is created under DELETED.
I suspect this is somehow the fault of Open-Xchange since other clients
like Thunderbird 24 don't cause this issue. Or might this be a
configuration error on our side? We tried setting "delete_mode:
immediate", but the original mailbox was still left behind.
Here is a IMAP trace when deleting the mentioned mailbox with
Open-Xchange with "delete_mode: delayed".
# Create a new mailbox with same name in trash folder ("Papierkorb")
<1379924304<A1 LIST "" INBOX.Test
>1379924304>* LIST (\HasNoChildren) "." INBOX.Test
A1 OK Completed (0.000 secs 2 calls)
<1379924304<A2 LIST "" ""
>1379924304>* LIST (\Noselect) "." ""
A2 OK Completed (0.000 secs)
<1379924304<A3 LIST "" INBOX.Papierkorb.Test
>1379924304>A3 OK Completed (0.000 secs)
<1379924304<A4 LIST "" INBOX.Papierkorb
>1379924304>* LIST (\HasNoChildren) "." INBOX.Papierkorb
A4 OK Completed (0.000 secs 2 calls)
<1379924304<A5 CREATE INBOX.Papierkorb.Test
>1379924304>A5 OK Completed
<1379924304<A6 LIST "" INBOX.Papierkorb.Test
>1379924304>* LIST (\HasNoChildren) "." INBOX.Papierkorb.Test
A6 OK Completed (0.000 secs 2 calls)
<1379924304<A7 LIST "" INBOX.Papierkorb.Test
>1379924304>* LIST (\HasNoChildren) "." INBOX.Papierkorb.Test
A7 OK Completed (0.000 secs 2 calls)
<1379924304<A8 LSUB "" INBOX.Test
>1379924304>* LSUB () "." INBOX.Test
A8 OK Completed (0.000 secs 1 calls)
<1379924304<A9 SUBSCRIBE INBOX.Papierkorb.Test
>1379924304>A9 OK Completed
<1379924304<A10 SELECT INBOX.Papierkorb.Test
>1379924304>* 0 EXISTS
* 0 RECENT
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)] Ok
* OK [UIDVALIDITY 1379924304] Ok
* OK [UIDNEXT 1] Ok
* OK [HIGHESTMODSEQ 1] Ok
* OK [URLMECH INTERNAL] Ok
A10 OK [READ-WRITE] Completed
<1379924304<A11 SETACL INBOX.Papierkorb.Test foobar acdeiklprstwx
>1379924304>A11 OK Completed
<1379924304<A12 LOGOUT
>1379924304>* BYE LOGOUT received
A12 OK Completed
# Copy mails into the new mailbox below trash
<1379924304<A1 GETACL INBOX.Test
>1379924304>* ACL INBOX.Test foobar lrswipkxtecda
A1 OK Completed
<1379924304<A2 EXAMINE INBOX.Test
>1379924304>* 2 EXISTS
* 0 RECENT
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS ()] Ok
* OK [UIDVALIDITY 1379924218] Ok
* OK [UIDNEXT 3] Ok
* OK [HIGHESTMODSEQ 2] Ok
* OK [URLMECH INTERNAL] Ok
A2 OK [READ-ONLY] Completed
<1379924304<A3 FETCH 1:* (UID)
>1379924304>* 1 FETCH (UID 1)
* 2 FETCH (UID 2)
A3 OK Completed (0.000 sec)
<1379924304<A4 CLOSE
>1379924304>A4 OK Completed
<1379924304<A5 EXAMINE INBOX.Test
>1379924304>* 2 EXISTS
* 0 RECENT
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)
* OK [PERMANENTFLAGS ()] Ok
* OK [UIDVALIDITY 1379924218] Ok
* OK [UIDNEXT 3] Ok
* OK [HIGHESTMODSEQ 2] Ok
* OK [URLMECH INTERNAL] Ok
A5 OK [READ-ONLY] Completed
<1379924305<A6 UID COPY 1:2 INBOX.Papierkorb.Test
>1379924305>A6 OK [COPYUID 1379924304 1:2 1:2] Completed
<1379924305<A7 LOGOUT
>1379924305>* BYE LOGOUT received
A7 OK Completed
# Delete the old mailbox
<1379924305<A300 MYRIGHTS INBOX.Papierkorb.Test
>1379924305>* MYRIGHTS INBOX.Papierkorb.Test lrswipkxtecda
A300 OK Completed
<1379924305<A301 LIST "" INBOX.Test
>1379924305>* LIST (\HasNoChildren) "." INBOX.Test
A301 OK Completed (0.000 secs 2 calls)
<1379924305<A302 LIST "" "INBOX.Test.%"
>1379924305>A302 OK Completed (0.000 secs)
<1379924305<A303 UNSUBSCRIBE INBOX.Test
>1379924305>A303 OK Completed
<1379924305<A304 LIST "" "INBOX.Test.%"
>1379924305>A304 OK Completed (0.000 secs)
<1379924305<A305 DELETE INBOX.Test
>1379924305>A305 OK Completed
<1379924306<A306 STATUS INBOX.Papierkorb.Test (MESSAGES UNSEEN)
>1379924306>* STATUS INBOX.Papierkorb.Test (MESSAGES 2 UNSEEN 0)
A306 OK Completed
Right now we use a cron job to detect these cases and decide manually if
we want to delete the remaining directories or not. If you need more
information / traces / etc., we would be happy to provide them.
Thanks for your time and effort!
Best Regards,
Peter
More information about the Info-cyrus
mailing list