Which imap command to rename a root mailbox while maintaining its partition
Thomas Cataldo
thomas.cataldo at bluemind.net
Tue Nov 5 01:30:47 EST 2019
> On 29 Oct 2019, at 13:13, Ken Murchison <murch at fastmail.com> wrote:
>
> x RENAME <old> <new> <partition>
>
>
> should work
Agree, but it does not :-)
At least with version 3.0.8 :
localhost> info user/ren at devenv.blue
{user/ren at devenv.blue}:
private:
check: NIL
checkperiod: NIL
comment: NIL
sort: NIL
specialuse: NIL
thread: NIL
expire: NIL
news2mail: NIL
sieve: NIL
squat: NIL
shared:
check: NIL
checkperiod: NIL
comment: NIL
sort: NIL
specialuse: NIL
thread: NIL
annotsize: 0
duplicatedeliver: false
expire: NIL
lastpop: NIL
lastupdate: 4-Nov-2019 15:32:13 +0000
news2mail: NIL
partition: bm-master__devenv_blue
pop3newuidl: true
pop3showafter: NIL
sharedseen: false
sieve: NIL
size: 32310
squat: NIL
synccrcs: 2599665889 0
uniqueid: ee8ede37-153a-4650-bf94-3da7d4f52043
An IMAP session as admin :
telnet localhost 1143
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=PLAIN SASL-IR] server ready
. login admin0 admin
. OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT THREAD=REFERENCES THREAD=REFS ANNOTATEMORE ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1 X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE] User logged in SESSIONID=<cyrus-26086-1572885470-1-16005178469193034866>
. RENAME user/ren at devenv.blue user/rename at devenv.blue bm-master__devenv_blue
. NO Cross-server or cross-partition move w/rename not supported
. RENAME user/ren at devenv.blue user/rename at devenv.blue
* OK rename user/ren at devenv.blue user/rename at devenv.blue
* OK rename user/ren/Drafts at devenv.blue user/rename/Drafts at devenv.blue
* OK rename user/ren/Junk at devenv.blue user/rename/Junk at devenv.blue
* OK rename user/ren/Outbox at devenv.blue user/rename/Outbox at devenv.blue
* OK rename user/ren/Sent at devenv.blue user/rename/Sent at devenv.blue
* OK rename user/ren/Trash at devenv.blue user/rename/Trash at devenv.blue
. OK Completed
But if I use the version without an explicit partition, the new mailbox ends up in :
> info user/rename at devenv.blue
{user/rename at devenv.blue}:
private:
check: NIL
checkperiod: NIL
comment: NIL
sort: NIL
specialuse: NIL
thread: NIL
expire: NIL
news2mail: NIL
sieve: NIL
squat: NIL
shared:
check: NIL
checkperiod: NIL
comment: NIL
sort: NIL
specialuse: NIL
thread: NIL
annotsize: 0
duplicatedeliver: false
expire: NIL
lastpop: NIL
lastupdate: 4-Nov-2019 16:43:36 +0000
news2mail: NIL
partition: default
pop3newuidl: true
pop3showafter: NIL
sharedseen: false
sieve: NIL
size: 32310
squat: NIL
synccrcs: 2599665889 0
uniqueid: ee8ede37-153a-4650-bf94-3da7d4f52043
which forces me issue a second command in my imap session :
. RENAME user/rename at devenv.blue user/rename at devenv.blue bm-master__devenv_blue
* OK rename user/rename at devenv.blue user/rename at devenv.blue
* OK rename user/rename/Drafts at devenv.blue user/rename/Drafts at devenv.blue
* OK rename user/rename/Junk at devenv.blue user/rename/Junk at devenv.blue
* OK rename user/rename/Outbox at devenv.blue user/rename/Outbox at devenv.blue
* OK rename user/rename/Sent at devenv.blue user/rename/Sent at devenv.blue
* OK rename user/rename/Trash at devenv.blue user/rename/Trash at devenv.blue
. OK Completed
Which moves the mailbox to the partition where I want it (its original one).
The problem with the non-atomic rename is that our replication target receives data belonging to the default partition, which is not desired or expected.
Thomas Cataldo
Directeur Technique
(+33) 6 42 25 91 38
BlueMind
+33 (0)5 81 91 55 60
Hotel des Télécoms, 40 rue du village d'entreprises
31670 Labège, France
www.bluemind.net / https://blog.bluemind.net/fr/
More information about the Cyrus-devel
mailing list