sync_server do_rename() and uidvalidity
Bron Gondwana
brong at fastmail.fm
Sun Jan 15 11:11:17 EST 2012
On Sun, Jan 15, 2012, at 10:29 AM, David Carter wrote:
> I've just noticed some noise in my logs which appear to be a consequence
> of me clearing out a whole collection of old mailboxes:
>
> Jan 14 20:49:16 cyrus-38 sync_client[23990]:
> SYNCNOTICE: uidvalidity higher on replica
> DELETED.user.dpc22.cron-sep-2010.4F0F524C,
> updating 1326404172 => 1326404173
>
> The cause is mailbox_rename_copy():
>
> /* update uidvalidity */
> newmailbox->i.uidvalidity = time(0);
>
> where the replica has been updated one second after the master by the
> do_rename() function in sync_server.
>
> I use the replication engine for nightly backups to an archive server as
> well as rolling replication. This means that three different uidvalidity
> values can be in play. Here's the same mailbox after a nightly backup.
> Uidvalidity has been bounced for a second time on the master:
>
> Jan 14 22:46:58 cyrus-38 sync_client[24693]:
> SYNCNOTICE: uidvalidity higher on replica
> DELETED.user.dpc22.cron-sep-2010.4F0F524C,
> updating 1326404173 => 1326581090
>
> mbexamine demonstrates that I've ended up with a uidvalidity of 1326581090
> on the master and backup servers, and 1326404173 on the replica for this
> particular mailbox. The replica isn't fixed by "sync_client -u".
>
> I guess that a workaround would be for mailbox_rename_copy() to copy the
> uidvalidity value from the old mailbox to the new. This would correspond
> to what my old 2.3 FAST_RENAME patch used to do, just moving all of the
> cyrus index, cache and messages files with a single rename(). There is a
> small danger that an IMAP client might confuse two mailboxes with the same
> uidvalidity following a particularly unfortunate collection of renames,
> although this has never been a problem for us in seven or eight years now.
>
> Any other ideas? I'm happy to write this up as a bugzilla entry, I'm just
> debating what to put in that report. I am running Cyrus 2.4.13.
Yeah, this showed up in master as well - I've fixed it there, but not yet
backported to 2.4. I'm not sure how easily it would backport, which is
why I haven't done it. I'd love to just release 2.5 and not have to keep
backporting everything!
Bron.
--
Bron Gondwana
brong at fastmail.fm
More information about the Cyrus-devel
mailing list