Description of problem:
dovecot is accessed with squirrelmail with the imap protocol, on an up-to-date
fedora core 4. When performing (delete) "move to trash" operation with
squirrelmail, the following error message appears in the mailog, and the move
operation is aborted :
Nov 22 14:56:10 tux imap(bellet): Corrupted binary tree file
/misc/raid/bellet/mail/.imap/Trash/.imap.index.tree: UID to be inserted isn't
higher than existing (273 <= 274)
Refreshing the view of the inbox allows to continue with the imap session.
This error is not 100% reproductible, but occurs more frequently, when :
. large amount of messages are deleted in the webmail
. new messages are delivered to the inbox in parallel.
The particularity of the homedir is that it is mounted over NFS, via the
automounter, with the following options :
disk.creatis.insa-lyon.fr:/mnt/raid /misc/raid nfs
A simple way to reproduce this problem is to setup an NFS mounted home
directory, deliver mail to this user on a periodic interval, and delete these
messages in parallel with squirrelmail.
dovecot.conf contains these options :
protocols = imap imaps pop3 pop3s
imap_listen = [::]
pop3_listen = [::]
imaps_listen = [::]
pop3s_listen = [::]
ssl_cert_file = /etc/pki/dovecot/dovecot.pem
ssl_key_file = /etc/pki/dovecot/private/dovecot.pem
login_dir = /var/run/dovecot-login
login = imap
login = pop3
first_valid_uid = 100
mbox_locks = fcntl
auth = default
auth_mechanisms = plain
auth_userdb = passwd
auth_passdb = pam
auth_user = root
0.99.x Dovecot doesn't support having index files in NFS mounted directories,
don't do it.
1.0-alpha versions support it with setting mmap_disable=yes, but it still has
Append eg. :INDEX=/var/indexes/%u to default_mail_env to move indexes elsewhere.
Thanks for the hint ! I didn't read the documentation carefully and missed this
point. I appended ":INDEX=MEMORY" instead, because the machine has many
accounts, and I'm a lazy sysadmin :-) I think I can live with the cpu overhead.
Now it works.