On Feb 22, 2008, at 11:26 AM, [EMAIL PROTECTED] wrote:

On Thu, 2008-02-21 at 11:03 +0100, [EMAIL PROTECTED] 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..

Attachment: PGP.sig
Description: This is a digitally signed message part

Reply via email to