I make some tests and find problems moving mailboxes with users online:
( Cyrus 2.4.8 )
Move with
RENAME user/lucas.carraro user/lucas.carraro server2.prevnet!default
In frontends and backends:
.........
allowusermoves: 1
disconnect_on_vanished_mailbox: 1
........
When i move from server1!default to server2!default
In server1 lock remains:
<config_directory>/lock/lucas.carraro.lock
<config_directory>/lock/lucas.carraro/Sent.lock
<config_directory>/lock/lucas.carraro/Project.lock
<config_directory>/lock/lucas.carraro/Trash.lock
<config_directory>/lock/lucas.carraro/Drafts.lock
<config_directory>/lock/lucas.carraro/IBM.lock
In server1 <spool_imap>/l/user/lucas^carraro/ remains with messages,
but subfolders are deleted.
* All mailboxes moves to server2 , and all delivery continue normally in server2
all deleted mailboxes DELETED/user/lucas.carraro/ moves normally to server2
If i try to move back: (server2 -> server1)
I receive a error: "Server unavaiable for this operation"
if i remove in server1 <config>/lib/imap/lock/lucas.carrar* and <spool>/imap/l/user/lucas^carraro/*
i can move all mailboxes from server2 to server1.
But locks and principal mailbox remains in sever2.
* Exist another parameter to force discconnect ?
Regards
Zinato
On Thu, May 12, 2011 at 8:26 PM, Dave McMurtrie <dave64@xxxxxxxxxxxxxx> wrote:
On 5/12/11 7:06 PM, Lucas Zinato Carraro wrote:Generally, yes, but I'm not 100% sure that there aren't edge cases.
>
> I can move mailboxes between servers with a user connected ?
Actually, I'm going to assume that there are probably edge cases. Also,
newer versions should be somewhat better than older versions at dealing
with this.
At the very least, if you're running any version more recent than 2.3.15
you'll want to make sure you set disconnect_on_vanished_mailbox to true
in imapd.conf. If you don't set this, the client will remain connected
to proxyd on the frontend and proxyd will remain connected to imapd on
the backend. After the move, there will be no mail on that backend
server and the user will see an empty mailbox. Setting
disconnect_on_vanished_mailbox will cause imapd to disconnect proxyd and
hence, the client. Depending on the client, it may silently reconnect
and the user won't notice. That behavior varies by client.
Cyrus takes care of this for you by setting the mailbox state to
> Exist a way to block the connection until the operation finish ?
MBTYPE_RESERVE during the move. Note that this happens per-folder as
each one is being moved, and not for the entire mailbox hierarchy.
If an IMAP client attempts to access a folder while it's in reserved
state it will get either a BAD or NO (I didn't look to see which)
"Mailbox is currently reserved" back.
hth,
Dave
----
Cyrus Home Page: http://www.cyrusimap.org/
List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
---- Cyrus Home Page: http://www.cyrusimap.org/ List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/