[Dovecot] mailboxes missing after upgrade from 2.1.4 to 2.1.7
Micah Anderson
micah at riseup.net
Mon Jul 2 17:25:25 EEST 2012
Hi all,
I mentioned this on the #dovecot irc channel, but I thought I would post
here so I can provide more details.
The basic problem is that when I upgraded from 2.1.4 to 2.1.7, some
users no longer are able to see their folders in pine/alpine. The
folders are actually there, and are subscribed (according to doveadm)
and its possible to do operations on those folders, if you know the
name (for example, opening the folder works fine if you know the name).
When I downgrade to 2.1.4 again, the folders appear again, so its
clearly something that changed between the two versions. I looked
through the changelog, and found a few possibile culprits, I think
pine/alpine use imapc, so that could be related:
. imapc: Use imapc_list_prefix also for listing subscriptions
. Fixed looking up parent mailbox name with different namespace vs. layout separators.
. imapc: Don't list mailboxes that don't match list patterns.
. layout=fs: Fixed listing mailboxes with prefix=INBOX/
. LIST with mailbox {} settings incorrectly set subscribed-flags.
Here is my dovecot -n output:
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.5
auth_default_realm = example.net
auth_verbose = yes
default_process_limit = 256
default_vsz_limit = 512 M
dict {
expire = mysql:/etc/dovecot/dovecot-dict-sql.conf
quota = mysql:/etc/dovecot/dovecot-dict-sql.conf
}
disable_plaintext_auth = no
first_valid_gid = 8
first_valid_uid = 8
last_valid_gid = 8
last_valid_uid = 8
listen = *
login_greeting = howdy, ready.
mail_location = mdbox:~/mdbox:INDEX=/srv/dovecot_indexes/%d/%1n/%n
mail_plugins = expire quota zlib stats
maildir_very_dirty_syncs = yes
namespace {
inbox = yes
location =
prefix =
separator = .
}
namespace {
alias_for =
hidden = yes
inbox = no
list = no
location =
prefix = INBOX.
separator = .
}
passdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
plugin {
antispam_allow_append_to_spam = yes
antispam_backend = pipe
antispam_debug_target = syslog
antispam_pipe_program = /usr/local/bin/train_spam
antispam_pipe_program_args = -d;10.0.1.109
antispam_pipe_program_notspam_arg = ham
antispam_pipe_program_spam_arg = spam
antispam_pipe_tmpdir = /var/tmp
antispam_signature = X-Spam-Flag
antispam_signature_missing = error
antispam_spam_pattern_ignorecase = SPAM
antispam_trash_pattern = trash;Trash;Deleted *
expire = Trash
expire2 = Trash/*
expire3 = Spam
expire_dict = proxy::expire
quota = dict:Your mail quota::proxy::quota
quota_rule = *:bytes=100663296
quota_rule2 = Trash:bytes=+20%%
quota_rule3 = Spam:bytes=+10%%
quota_rule4 = INBOX.Trash:bytes=+20%%
quota_rule5 = INBOX.Spam:bytes=+10%%
quota_rule6 = INBOX.restored_from_backups:bytes=+500%%
sieve = ~/.dovecot.sieve
sieve_after = /var/lib/dovecot/sieve/after.sieve
sieve_before = /var/lib/dovecot/sieve/default.sieve
sieve_dir = ~/sieve
stats_refresh = 30 secs
stats_track_cmds = yes
zlib_save = gz
zlib_save_level = 6
}
postmaster_address = postmaster at example.net
protocols = " imap pop3"
service anvil {
unix_listener anvil {
group = dovecot
mode = 0660
user = root
}
}
service auth {
unix_listener auth-userdb {
group = mail
mode = 0600
user = mail
}
}
service dict {
unix_listener dict {
group = mail
mode = 0600
user = mail
}
}
service imap-login {
process_min_avail = 10
service_count = 0
vsz_limit = 512 M
}
service imap-postlogin {
executable = script-login /usr/local/sbin/postlogin_imap
}
service imap {
executable = imap imap-postlogin
process_limit = 2048
}
service pop3-login {
process_min_avail = 10
service_count = 0
vsz_limit = 512 M
}
service pop3-postlogin {
executable = script-login /usr/local/sbin/postlogin_pop
}
service pop3 {
executable = pop3 pop3-postlogin
}
service stats {
fifo_listener stats-mail {
mode = 0600
user = mail
}
}
ssl_cert = </etc/certs/wildcard/cert.pem
ssl_cipher_list = HIGH:-ADH:-aNULL
ssl_key = </etc/certs/wildcard/key.pem
userdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
verbose_proctitle = yes
protocol lda {
mail_plugins = expire quota zlib stats sieve
plugin {
quota_exceeded_message = Sorry, your message cannot be delivered to that person because their mailbox is full. If you can contact them another way, you may wish to tell them of this problem.
quota_rule7 = INBOX:bytes=+10%%
}
}
protocol imap {
imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
mail_max_userip_connections = 20
mail_plugins = expire quota zlib stats imap_quota imap_zlib antispam imap_stats
plugin {
quota_exceeded_message = You are over quota. To avoid losing mail, immediately empty your Trash and Sent folders and delete emails with large attachments. Visit https://help.example.net/quota for more help.
}
}
protocol pop3 {
mail_plugins = expire quota zlib stats
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_uidl_format = %g
}
As requested by tss in #dovecot, I attempted to add 'rawlog' to:
service imap-postlogin {
executable = script-login /usr/local/sbin/postlogin_imap
}
to get:
service imap-postlogin {
executable = script-login rawlogin /usr/local/sbin/postlogin_imap
}
but with that, it doesn't even open the INBOX folder, and there is
nothing in the user's rawlog folder, I get this error:
dovecot: imap-postlogin: Error: Fatal: This process must not be run as root
it didn't open even the INBOX imap folder
I went over the http://wiki2.dovecot.org/Debugging/Rawlog and made sure
everything was correct there, but it still didn't work right.
Any ideas or suggestions of things to try would be greatly appreciated!
thanks,
micah
--
More information about the dovecot
mailing list