16 Apr
2013
16 Apr
'13
6:11 p.m.
On 16.4.2013, at 18.03, Thomas Hummel hummel@pasteur.fr wrote:
On Tue, Apr 16, 2013 at 05:51:21PM +0300, Timo Sirainen wrote:
dsync in general resolves UID conflicts. If there's any chance that an IMAP client could have seen two different messages with the same UID, both of the messages get assigned new UIDs.
I'm not sure I understand this correctly :
let's say that :
- in old, foobar as uid 100
- initial dsync
- user gets relocated, kicked and reconnects to new, then deletes foobar
- final dsync. dsync somehow manages to understand it should not sync foobar from old to new
Yes. It sees that uid 100 was deleted, and keeps nextuid=101.
- migration is over, new message foobaz comes in. Oh, I get it, you mean since uids gets only incremented, this new could not get uid 100 and then confuse the client index ?
The new message gets uid 101, as according to nextuid value. A slightly more complex one would have been:
- you have mails up to 100
- dsync
- old server gets new mail uid=101
- old server deletes uid 101
- new server gets new mail uid 101
- dsync sees that there's a conflict (even though the old mail was already deleted), and gives the new server's new mail uid 102