[Dovecot] Still weird UID ordering issues with maildir

Todd Vierling tv at duh.org
Mon Sep 12 16:52:04 EEST 2005


On Sun, 11 Sep 2005, Timo Sirainen wrote:

> > > 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.

Reading your statement above again, something sounds odd here.  If UID 1187
is not in index, how does dovecot even know that the message file in
question is UID 1187?  (This sounds very much like an ordering problem of
some sort.)

> > 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.

Then by "skips files" you mean that a file is disappearing and reappearing?
I don't know how that could be, as it would make many other programs on the
system go insane....

> > The only other mailbox touching process is procmail,

> OK. That shouldn't matter since it's touching only new/ dir.

Which is what I thought, yes.  No other apps on my system know about the
maildir format at all.

> 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?

I use Pine and PC-Pine, which only opens one connection per mailbox at a
time.  Unfortunately I can't figure out the conditions that cause this
problem, so it's not reliably reproduceable.

-- 
-- Todd Vierling <tv at duh.org> <tv at pobox.com> <todd at vierling.name>


More information about the dovecot mailing list