On Fri, 2009-07-31 at 18:15 +0200, Thomas Hummel wrote: > On Fri, Jul 31, 2009 at 11:30:30AM -0400, Timo Sirainen wrote: > > > For example if you have mails with > > UIDs 1, 2, 5 and 10 and you delete dovecot-uidlist and dovecot.index*, > > Dovecot gives them UIDs 1, 2, 3, 4. > > Ok, I get it. > > But the only way I can think of a client can detect that UIDs are not the same > for the same messages is by detecting that UIDVALIDITY has changed. So if only > dovecot-uidlist gets deleted but index (which store UIDVALIDITY) survives, > what > will happen in the client ? Will he fetch the wrong data ?
Well, let's say your uidlist contains: - uidvalidity = 1234567890 - next_uid = 11 - uid 1 = 1248670280.M981281P9896.host:2, - uid 5 = 1248673753.M935252P9845.host:2, - uid 10 = 1248675280.M904006P9872.host:2, And index contains information: - uidvalidity = 1234567890 - next_uid = 11 - message uids: 1, 5, 10 If you delete dovecot-uidlist, it's regenerated as: - uidvalidity = 1234567890 - next_uid = 14 - uid 11 = 1248670280.M981281P9896.host:2, - uid 12 = 1248673753.M935252P9845.host:2, - uid 13 = 1248675280.M904006P9872.host:2, And index is updated: - uidvalidity = 1234567890 - next_uid = 14 - message uids: 11, 12, 13 i.e. Dovecot gets also the next_uid from index file, and starts assigning UIDs beginning from it.
signature.asc
Description: This is a digitally signed message part