[Dovecot] pre-1.0.rc27: Index and mbox fixes

Timo Sirainen tss at iki.fi
Sat Mar 10 21:45:24 EET 2007


I've been doing some stress testing in the last few days and fixing all
the errors I saw. I'm hoping that I've finally really fixed all the
index/mbox problems. So, again I think the only thing left for v1.0 is
the documentation. Please test this nightly snapshot before I'll release
rc27 tomorrow:

http://dovecot.org/nightly/dovecot-latest.tar.gz

If you've seen any of the following error messages in log files, these
should all be fixed now:

 - index: Append with UID 56297, but next_uid = 56298
 - mbox: UID inserted in the middle of mailbox /home/tss/mail/inbox
(45769 > 45768, seq=28, idx_msgs=30)
 - mbox: Expunged message reappeared in mailbox /home/tss/mail/inbox
(UID 86957 < 86958, seq=28, idx_msgs=27)

These should be fixed for most cases, but they can still rarely happen:

 - index: Extension reset without intro prefix

There's a really tiny possibility of it still happening with
mmap_disable=no, but I think it's practically fixed now. A proper fix
would require more changes than I want to do for v1.0 (either support
for marking transaction start/end positions or getting rid of the stupid
intro prefix completely).

 - Cached message offset 38340 is invalid for mbox
file /home/tss/mail/inbox

This should happen only if you're using in-memory indexes or
mbox_min_index_size isn't 0. This happens if the mbox file's timestamp
and file size are the exact same after some expunges+appends, so the
only way to properly fix it would be to wait a second and update the
mtime before unlocking the mbox file after expunges.

This sleep is actually already done when Dovecot notices that a) mtime
and size really are the same after modification and b) mails have been
moved around inside the file (ie. flag changes were done but there
weren't enough empty space in the mail's own headers so mails had to be
moved to get the needed space). Should be pretty rare.

Anyway, this error is completely invisible to users and it doesn't have
any other side effects that mbox_dirty_syncs doesn't already have. The
whole error message could even be removed if it's going to become a
problem..

Other changes in the snapshot:

	+ mail-log plugin: Log the mailbox name, except if it's INBOX
	+ dovecot-auth: Added a lot more debug logging passdbs and userdbs
	+ dovecot-auth: Added %c variable which expands to "secured" with
	  SSL/TLS/localhost.
	+ dovecot-auth: Added %m variable which expands to auth mechanism name
	- Wrong endianess index files still weren't silently rebuilt
	- IMAP quota plugin: GETQUOTAROOT returned the mailbox name wrong the
	  namespace had a prefix or if its separator was non-default

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://dovecot.org/pipermail/dovecot/attachments/20070310/20497d4c/attachment.pgp 


More information about the dovecot mailing list