[Dovecot] Still weird UID ordering issues with maildir
Timo Sirainen
tss at iki.fi
Sun Sep 11 20:15:56 EEST 2005
On 11.9.2005, at 18:22, Todd Vierling wrote:
>>> repeated every time I try to login. I had to nuke the dovecot
>>> indexes and
>>> let it reindex (which throws off the ordering of some messages). It
>>> had
>>> been working without incident since updating to 20050829, until now.
>>
>> Actually deleting indexes shouldn't matter at all, since Dovecot does
>> that by itself after writing that error message.
>
> No it doesn't, at least not in nightly 20050829. The imap process
> exits and
> I have to delete them manually; they're still sitting around. An
> artifact
> of this is the fact that if I don't delete the indexes manually before
> reopening the mailbox, the error happens again with exactly the same
> UIDs:
Hmm. Well, it doesn't exactly delete them but it marks them corrupted,
which should make it rebuild them when opening the next time. Guess
I'll have to look at that too.
>> The error message means that Dovecot saw a message 1187 that wasn't in
>> index, but index said it already had seen message 1188. Probably means
>> that the file was temporarily lost in some sync, but later seen again
>> in
>> another sync.. Dovecot isn't very forgiving if readdir() skips files.
>
> I don't see how skipping files like that should happen -- HOWEVER, you
> do
> realize that readdir(3) has no guarantee of ordering, right? (Meaning
> that
> two successive calls to readdir(3) can, per POSIX, return the same
> list of
> files in a completely different order.)
Yes, the order isn't relied on. The filenames are all read into a hash
table which is used.
>> Are there other maildir clients than Dovecot updating the maildir?
>> That
>> can cause those problems.
>
> The only other mailbox touching process is procmail, which is putting
> mail
> into the folders. However, this happens even when procmail is not
> *actively* putting mail into the folder (it could be that mail had been
> added between the last time the mailbox was closed, and when it was now
> reopened).
OK. That shouldn't matter since it's touching only new/ dir.
> But isn't collision-free access supposed to be a feature of using
> maildir --
> even if I were using nfs? :)
That's the theory, but in practise if files are being deleted or
renamed (I'm not sure about adding) inside a directory while another
process is reading its contents, some files might get skipped. That's
why Dovecot keeps dovecot-uidlist file locked while it's reading
maildir, so the skipping shouldn't happen if only Dovecot is accessing
the maildir.
But if there aren't other maildir clients accessing the maildir, do you
then use some IMAP client that opens multiple connections to same
mailbox? Just wondering if there's a way I could reproduce this
problem..
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
Url : http://dovecot.org/pipermail/dovecot/attachments/20050911/8ef11492/PGP.pgp
More information about the dovecot
mailing list