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