At 9:00 PM +0200 6/17/08, Thomas Zajic wrote:
From http://www.dovecot.org/list/dovecot/2008-June/031235.html:
> I have noticed that the entries in the dovecot-uidlist files don't seem
to get updated when an email is deleted or moved to .Trash. It appears
that this list list would just keep growing over time, being full of no
longer used filenames, and must tend to increase its processing
overhead.
The deleted entries are removed when a new message arrives to the
mailbox. So it's just an optimization not to waste disk I/O on rewriting
the file when it's not necessary. If this isn't happening, there's
something wrong or you're misunderstanding something.
From http://www.dovecot.org/list/dovecot/2008-June/031403.html:
> However, I DO clobber the dovecot-uidlist in .Trash as part of
my > monthly housekeeping because it tends to get very large
All the expunged messages get removed from it the next time a new
message is added to the mailbox. So there should be no need to delete
it. (v1.1 doesn't always recreate the file, but it gets rewritten if the
resulting file would be 70% of the current size or less.)
If I understand this correctly, dovecot is supposed to clean out all
deleted/expunged messages from dovecot-uidlist whenever a new message
is added to the respective mailbox - right?
That's what Timo was saying, but as I noted in
http://www.dovecot.org/list/dovecot/2008-June/031435.html it isn't
happening for me on 1.0.0.
This doesn't actually seem
to be the case at least with dovecot-1.0:
[EMAIL PROTECTED]:~# dovecot --version
1.0.14
That eliminates my hypothesis that it might have been fixed in later
1.0.x versions.
[EMAIL PROTECTED]:~# [EMAIL PROTECTED]:~# du -h
~user/Maildir/.Trash/dovecot-uidlist 13M
/home/user/Maildir/.Trash/dovecot-uidlist
[EMAIL PROTECTED]:~# wc -l < ~user/Maildir/.Trash/dovecot-uidlist
289769
[EMAIL PROTECTED]:~# ls -1 ~user/Maildir/.Trash/cur/ | wc -l
14
[EMAIL PROTECTED]:~# [EMAIL PROTECTED]:~# du -h
~user/Maildir/.Logs.System\ Checks/dovecot-uidlist 3,5M
/home/user/Maildir/.Logs.System Checks/dovecot-uidlist
[EMAIL PROTECTED]:~# wc -l < ~user/Maildir/.Logs.System\ Checks/dovecot-uidlist
85188
[EMAIL PROTECTED]:~# ls -1 ~user/Maildir/.Logs.System\ Checks/cur/ | wc -l
16069
The only mailbox where this seems to work properly is INBOX:
[EMAIL PROTECTED]:~# du -h ~user/Maildir/.INBOX/dovecot-uidlist 4,0K
/home/user/Maildir/.INBOX/dovecot-uidlist
[EMAIL PROTECTED]:~# wc -l < ~user/Maildir/.INBOX/dovecot-uidlist
18
[EMAIL PROTECTED]:~# ls -1 ~user/Maildir/.INBOX/cur/ | wc -l
17
[EMAIL PROTECTED]:~#
The server runs sendmail, the LDA is procmail, not dovecot's deliver. The
.procmailrc is empty except for the bare minimum, though, all other sorting
is done either via Thunderbird message filters or manually:
[EMAIL PROTECTED]:~# cat ~user/.procmailrc MAILDIR=$HOME/Maildir
DEFAULT=.INBOX/
[EMAIL PROTECTED]:~#
Any hints?
Your observations are consistent with mine: normal delivery with
procmail (i.e. leaving a new message in the 'new' directory) of any
mailbox results in Dovecot cleaning up the dovecot-uidlist file, but
adding a message to a mailbox via the IMAP "UID COPY" command does
not. That's the natural command to use for client filtering to move a
message from one mailbox to another under the same account, so it is
probably what T-Bird uses.
--
Bill Cole
[EMAIL PROTECTED]