[Dovecot] dsync mbox->mdbox II: highest_modseq changed

Timo Sirainen tss at iki.fi
Fri Nov 19 23:12:27 EET 2010

On 19.11.2010, at 6.40, Axel Thimm wrote:

>>> dsync(athimm): Info: old/speicher: highest_modseq changed: 1 != 10
>>> dsync(athimm): Info: root/root-heretic: highest_modseq changed: 1 != 10
>>> dsync(athimm): Info: lists/ccrma.stanford.edu/planetccrma: highest_modseq changed: 11 != 14 
>> These don't really matter. It just couldn't sync the modseqs correctly.
>> I should try to fix those somehow some day, but I think the problem here
>> is that mbox code can't handle this correctly. It should have increased
>> the modseqs to 10, 10, 14 but apparently it didn't.
> Shouldn't it be the other way? mbox was the source, so its modseq should
> had been considered authoritative, or not? One would expect that after
> applying the (same) changes to mdbox that the modseq should converge to
> be the same.

The problem is that modseqs can't shrink. Also once modseqs are enabled, whenever something changes the modseqs always increase. With mbox you didn't have modseqs enabled, so highest_modseq=1 at the beginning of dsync. But dsync enables modseqs and so it can't preserve the modseq=1 for destination, because each change increases it.. It would of course be possible to delay enabling modseqs or maybe not enable them at all, but that's a lot more extra complexity..

More information about the dovecot mailing list