On Wed, Jan 22, 2014, at 02:19 AM, Thomas Jarosch wrote:
> Hi Bron,
>
> On Thursday, 2. January 2014 09:52:13 Bron Gondwana wrote:
> > user.foo.sub %(NAMELOCK user.foo.sub TYPE RENAMETEMP)
>
> I just came up with a case that fails at least in cyrus 2.4:
>
> Rename a user while a mailbox
Hi Bron,
On Thursday, 2. January 2014 09:52:13 Bron Gondwana wrote:
> user.foo.sub %(NAMELOCK user.foo.sub TYPE RENAMETEMP)
I just came up with a case that fails at least in cyrus 2.4:
Rename a user while a mailbox is currently in SELECT state.
Cyrus 2.4 will execute the mailbox rename,
Hi Bron,
On Thursday, 2. January 2014 09:52:13 Bron Gondwana wrote:
> At this point, we go through all the old folder and delete the on-disk
> files. Once that's done, we can do a single update in the mailboxes.db:
>
> user.foo.sub %(TYPE DELETED)
>
> (we keep DELETED tombstones in mail
So I have a problem. User renames are
a) not atomic (in fact, any rename of a folder with subfolders is not atomic)
b) bandwidth wasteful with replication if a sync_client picks up the wrong set
of folder names too early (it winds up deleting the old user, then having to
copy all the messages a