I found a strange behaviour in dovecot compressed folder, maybe a bug. It happens only if you have one (and just one!) email in a gz compressed folder. I'm talking about a mbox server.
Step to reproduce:
- create a new folder, using any client (I think this step is not important, it happens also if tou create this folder server-side).
- copy one message (any message) into newly created folder (using your favourite drag-n-drop gesture, saving in that folder using you character client (mutt,...), etc.)
- if your client automatically subscribe to newly created folders, unsubscribe from it
- On your server "gzip newfolder"
- On your client subscribe "newfolder.gz"
- Try to access you newfolder
This is what I get in logfiles:
Jul 11 14:08:08 myhostname dovecot: imap(giulio): Error: Next message unexpectedly lost from mbox file /home/giulio/Mail/testfolder.gz at 9082 (cached) Jul 11 14:08:08 myhostname dovecot: imap(giulio): Error: read(/home/giulio/Mail/testfolder.gz) failed: Invalid argument (uid=1) Jul 11 14:08:08 myhostname dovecot: imap(giulio): Disconnected: Internal error occurred. Refer to server log for more information. [2011-07-11 14:08:08] bytes=2045/23657
The funniest thing is that if I have a folder with more than one message it works like a charm.
Some info about me:
- dovecot version 2.0.13
- gentoo linux, with kernel 2.6.38-gentoo-r6
- system running on a VMWare virtual machine (32bit)
- reiserfs filesystem
my dovecot -n output:
# 2.0.13: /etc/dovecot/dovecot.conf # OS: Linux 2.6.38-gentoo-r6 i686 Gentoo Base System release 2.0.2 auth_mechanisms = plain login disable_plaintext_auth = no listen = * mail_gid = mail mail_location = mbox:~/Mail:INBOX=/var/mail/%u:INDEX=~/ mail_privileged_group = mail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date passdb { args = * driver = pam } plugin { sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } service imap-login { inet_listener imap { address = imap.mydomain.it } inet_listener imaps { address = imap.mydomain.it } } service pop3-login { inet_listener pop3 { address = pop.mydomain.it } inet_listener pop3s { address = pop.mydomain.it } } ssl_cert =
Any ideas?
TIA, gc
-- Giulio Casella giulio at dsi.unimi.it System and network manager Computer Science Dept. - University of Milano