[Dovecot] Corrupted index problem when disk quota exceeded
Sergey Redin
list at redin.info
Sun Dec 11 08:00:57 EET 2005
Hi!
I should report yet another problem with dovecot index files. Suppose
we have
a user with his filesystem disk quota exceeded. He logins via POP3 or
IMAP to
remove some mail messages and fix this problem. When he logins for the
first time,
everything works fine, and he can read and remove something. But if his
disk
quota is still exceeded when he logs out, he cannot login any more.
I guess it is not fair to give user only one chance to clean his mail
folders :)
The problem is that dovecot tries to rewrite index files on logout,
but it cannot do
it correctly because the user's filesystem quota is exceeded. So the
next time dovecot
just replies "Mailbox is in inconsistent state, please relogin".
I believe that dovecot should work with any kind of corrupted index
files, this is
why I report such kind of bugs here.
Here is a sample session with dovecot which shows the problem:
========================================
dovtest# telnet localhost pop3
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.<6e56.7.439bbc09.Ciej0vGPllkO4txCYDEkWA==@dovtest.ru>
user test
+OK
pass q1
+OK Logged in.
list
+OK 1 messages:
1 324
.
dele 1
+OK Marked to be deleted.
quit
+OK Logging out, messages deleted.
Connection closed by foreign host.
dovtest# telnet localhost pop3
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.<6e56.8.439bbc1a.yUc5zYQ1KXeITsKTYaKlGg==@dovtest.ru>
user test
+OK
pass q1
+OK Logged in.
-ERR Mailbox is in inconsistent state, please relogin.
Connection closed by foreign host.
dovtest# tail /var/log/maillog
Dec 11 05:41:03 dovtest dovecot: pop3-login: Login: user=<test>,
method=PLAIN, rip=82.146.33.127, lip=82.146.33.127
Dec 11 05:41:06 dovtest dovecot: pop3(test): Logout. top=0/0, retr=0/
del=0/1, size=324
Dec 11 05:41:14 dovtest dovecot: pop3-login: Login: user=<test>,
method=PLAIN, rip=82.146.33.127, lip=82.146.33.127
Dec 11 05:41:22 dovtest dovecot: pop3(test): Logout. top=0/0, retr=1/
del=0/1, size=324
Dec 11 05:41:36 dovtest dovecot: pop3-login: Login: user=<test>,
method=PLAIN, rip=82.146.33.127, lip=82.146.33.127
Dec 11 05:41:44 dovtest dovecot: pop3(test): Logout. top=0/0, retr=0/
del=1/1, size=324
Dec 11 05:41:53 dovtest dovecot: pop3-login: Login: user=<test>,
method=PLAIN, rip=82.146.33.127, lip=82.146.33.127
Dec 11 05:41:53 dovtest dovecot: pop3(test): Corrupted index cache file
/home/dovtest.ru/data/mail/.imap/INBOX/dovecot.index.cache: indexid changed
Dec 11 05:41:53 dovtest dovecot: pop3(test): Mailbox is in inconsistent
state. top=0/0, retr=0/ del=0/0, size=0
Dec 11 05:41:53 dovtest dovecot: pop3(test): Mailbox init failed
top=0/0, retr=0/ del=0/0, size=0
dovtest# ls -la /home/dovtest.ru/data/mail/.imap/INBOX/
total 4
drwx------ 2 test test 512 Dec 11 05:41 .
drwx------ 3 test test 512 Dec 11 05:38 ..
-rw------- 1 test test 240 Dec 11 05:38 dovecot.index
-rw------- 1 test test 628 Dec 11 05:41 dovecot.index.log
dovtest#
========================================
It's a pity I did not report this yesterday, before 1.0.alpha5 was
released...
By the way I tested this on 1.0.alpha5 compiled from source on a
FreeBSD 4.11 VDS.
--
Sergey
More information about the dovecot
mailing list