mailbox_list_index and maildir_very_dirty_syncs are in conflicts?
Alessio Cecchi
alessio at skye.it
Sat Dec 5 18:40:14 UTC 2015
Hi,
I’m running Dovecot 2.2.19 with Maildir as storage and LDA for delivery.
I noticed that if I set mailbox_list_index=yes and
maildir_very_dirty_syncs=yes when I login via IMAP the STATUS command
don’t “see” new messages in sub-folders (like Spam).
Example, a new message as arrived in Spam folder (I can see in
Maildir/new/) but IMAP STATUS don’t see it:
. STATUS Spam (MESSAGES UNSEEN)
* STATUS Spam (MESSAGES 139 UNSEEN 0)
(in this case the date of “dovecot.list.index” files is not updated)
If I comment out mailbox_list_index=yes or maildir_very_dirty_syncs=yes
I can see the new message:
. STATUS Spam (MESSAGES UNSEEN)
* STATUS Spam (MESSAGES 140 UNSEEN 1)
(in this case the date of “dovecot.list.index” files is updated after
the STATUS command)
Instead the SELECT command works fine always.
An importante note, my dovecot LDA configuration (on MX servers) don’t
update index files:
protocol lda {
mail_location = maildir:~/Maildir:INDEX=MEMORY
mail_plugins = quota acl expire fts fts_solr zlib sieve
}
These because I need to filter incoming email via Sieve but since I
cannot use LMTP (and Director) on MX (but I have Director for POP/IMAP
access) the only way for not corrupting dovecot.index files is not
update their on delivery emails.
But reading http://wiki2.dovecot.org/MailLocation/Maildir this shouldn’t
be a problem (Optimizations “maildir_very_dirty_syncs=yes” … It's still
safe to deliver new mails to new/ …) since MX deliver new emails in
new/.
Is a Dovecot limit or is a problem of my configuration?
Thanks
my configuration:
# 2.2.19
# Pigeonhole version 0.4.9
auth_cache_negative_ttl = 5 mins
auth_cache_size = 10 M
auth_cache_ttl = 20 mins
auth_master_user_separator = *
auth_worker_max_count = 50
deliver_log_format = msgid=%m, from=%f, subject="%s": %$
dict {
acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
expire = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
first_valid_gid = 89
first_valid_uid = 89
imap_client_workarounds = delay-newmail tb-extra-mailbox-sep
tb-lsub-flags
imap_idle_notify_interval = 29 mins
imap_logout_format = in=%i out=%o session=<%{session}>
last_valid_gid = 89
last_valid_uid = 89
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = 10.96.3.156
login_trusted_networks = 10.0.0.0/24
mail_fsync = always
mail_location = maildir:~/Maildir
mail_plugins = quota acl expire fts fts_solr zlib
mailbox_list_index = yes
maildir_very_dirty_syncs = yes
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character subaddress comparator-i;ascii-numeric relational regex
imap4flags copy include variables body enotify environment mailbox date
index ihave duplicate vnd.dovecot.duplicate
mmap_disable = yes
namespace {
list = children
location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
prefix = shared/%%n/
separator = /
subscriptions = no
type = shared
}
namespace inbox {
inbox = yes
location =
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
separator = /
}
passdb {
args = /etc/dovecot/dovecot-deny-sql.conf.ext
deny = yes
driver = sql
}
passdb {
args = /etc/dovecot/extra/master-users
driver = passwd-file
master = yes
pass = yes
}
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
acl = vfile
acl_shared_dict = proxy::acl
antispam_backend = mailtrain
antispam_mail_notspam = --ham
antispam_mail_sendmail = /usr/bin/sa-learn
antispam_mail_spam = --spam
antispam_spam = Spam
antispam_trash = Trash
expire = Trash
expire2 = Spam
expire_dict = proxy::expire
fts = solr
fts_solr = url=http://10.0.0.1:8983/solr/
quota = maildir:UserQuota
quota2 = dict:Quota Usage::noenforcing:proxy::sqlquota
quota_grace = 10M
quota_rule2 = Trash:storage=+100M
quota_warning = storage=95%% quota-warning 95 %u
quota_warning2 = storage=80%% quota-warning 80 %u
sieve = ~/.dovecot.sieve
sieve_before = /etc/dovecot/sieve/before.sieve
sieve_dir = ~/sieve
sieve_extensions = +vnd.dovecot.duplicate -vacation
zlib_save = gz
zlib_save_level = 6
}
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_fast_size_lookups = yes
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s,
bytes=%i/%o, session=<%{session}>
protocols = imap pop3 sieve
sendmail_path = /var/qmail/bin/sendmail
service auth {
client_limit = 6524
unix_listener auth-userdb {
group = vchkpw
mode = 0660
user = vpopmail
}
}
service dict {
process_limit = 500
unix_listener dict {
group = vchkpw
mode = 0660
user = vpopmail
}
}
service imap-login {
process_min_avail = 4
service_count = 0
}
service imap-postlogin {
executable = script-login /etc/dovecot/scripts/imap-postlogin.sh
unix_listener imap-postlogin {
group = vchkpw
mode = 0660
user = vpopmail
}
user = vpopmail
}
service imap {
executable = imap imap-postlogin
process_limit = 5000
service_count = 100
vsz_limit = 384 M
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service pop3-login {
process_min_avail = 4
service_count = 0
}
service pop3-postlogin {
executable = script-login /etc/dovecot/scripts/pop3-postlogin.sh
unix_listener pop3-postlogin {
group = vchkpw
mode = 0660
user = vpopmail
}
user = vpopmail
}
service pop3 {
executable = pop3 pop3-postlogin
process_limit = 1024
service_count = 100
}
service quota-warning {
executable = script /etc/dovecot/scripts/quota-warning.sh
unix_listener quota-warning {
user = vpopmail
}
user = vpopmail
}
ssl_cert = </etc/dovecot/ssl/wildcard.pem
ssl_key = </etc/dovecot/ssl/wildcard.key
ssl_protocols = !SSLv2 !SSLv3
submission_host = 127.0.0.1
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
verbose_proctitle = yes
protocol lda {
mail_location = maildir:~/Maildir:INDEX=MEMORY
mail_plugins = quota acl expire fts fts_solr zlib sieve
}
protocol imap {
mail_max_userip_connections = 25
mail_plugins = quota acl expire fts fts_solr zlib imap_quota imap_acl
imap_zlib
}
protocol sieve {
mail_max_userip_connections = 2
}
protocol pop3 {
mail_max_userip_connections = 5
}
--
Alessio Cecchi
Postmaster AT http://www.qboxmail.it
http://www.linkedin.com/in/alessice
More information about the dovecot
mailing list