On Feb 22, 2008, at 11:26 AM, mikkel@euro123.dk wrote:
On Thu, 2008-02-21 at 11:03 +0100, mikkel@euro123.dk wrote:
I have been doing some testing and it appears that the updating of
the file maildirsize is sometimes delayed.When do you see this delaying?
When I telnet manually to pop3 and imap and type commands to delete certain messages, while keeping an eye on the maildirsize file. This isn't always consistent, but it appears that the updates to maildirsize are grouped together before being committed.
DELE with POP3 updates only process's internal state. QUIT expunges +
updates maildirsize.
STORE +FLAGS \Deleted updates message flags. EXPUNGE expnges + updates
maildirsize.
Do you mean that you can see a situation with QUIT or EXPUNGE command
when maildir's contents don't match maildirsize file? Or if you mean
only setting the deleted flags, that's normal then because nothing
really gets deleted yet anyway.
POP3 is run in a single transaction, but the mails are expunged and maildirsize is updated only when QUIT is run. So you shouldn't be
able to notice a situation where maildirsize doesn't match the maildir contents.So what happens if QUIT is never run? If the the connection is broken before ending properly?
Nothing gets deleted.
Does the IMAP connection also have to be terminated properly before
the updates are written?
No, but only EXPUNGE and CLOSE commands remove the messages marked as
deleted.
This may be the cause of the issue since some users in a production environment will always break the connection (loss of internet connectivity, the client program crashing or just generally badly
behaving e-mail clients).
For POP3 maybe, but they'd probably get duplicate messages downloaded
then too, unless the client is smart with UIDLs.
With IMAP could it be just that users have marked messages deleted and
their client hides them, but the messages are never expunged? Or that
the messages have been moved to Trash mailbox..