Julian Sternberg
2016-Oct-30 10:04 UTC
Defining INDEX target to other location than maildir seems to have no effect.
Dovecot Version 2.2.13
Linux Distribution: Debian Jessie
CPU Architecture: x64
Filesystem: GlusterFS/NFS, XFS for Base System/Index Files.
Two Dovecot/Postfix nodes accessing same GlusterFS/NFS Maildir.
Regardless what i choose in mail_location (:INDEX=MEMORY or
:INDEX=/var/indexes/%d/%n) all Mailbox index files will still get
created within the users mail_location maildir: ~/Maildir
My mail_location Maildir directory is shared on GlusterFS mount so i
need to get index files away from this share due locking mechanism and
faster caching.
The weird is, if i set INDEX to /var/indexes, the index files getting
created sometimes but then not updated frequently and exist parallel on
Maildir which are mostly newer than on /var/indexes. If you delete the
dovecot.index* files from Maildir, they will get recreated immediatly on
Imap access but not on the alternative set INDEX location, they are
getting recreated within Maildir again.
Here is doveconf -n Output:
# 2.2.13: /etc/dovecot/dovecot.conf
# OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.6
auth_mechanisms = plain login cram-md5
disable_plaintext_auth = no
first_valid_uid = 2000
hostname = censored.hostname.com
last_valid_uid = 2000
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = *
lock_method = dotlock
mail_fsync = always
mail_gid = 2000
mail_home = /storage/vmail/%d/%n
mail_location = maildir:~/Maildir:LAYOUT=fs:INDEX=MEMORY
mail_nfs_storage = yes
mail_privileged_group = vmail
mail_temp_dir = /var/tmp
mail_uid = 2000
maildir_very_dirty_syncs = yes
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 ihave
mmap_disable = yes
namespace inbox {
inbox = yes
location mailbox Archive {
auto = no
special_use = \Archive
}
mailbox Archives {
auto = no
special_use = \Archive
}
mailbox "Deleted Items" {
auto = no
special_use = \Trash
}
mailbox "Deleted Messages" {
auto = no
special_use = \Trash
}
mailbox Drafts {
auto = no
special_use = \Drafts
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Items" {
auto = no
special_use = \Sent
}
mailbox "Sent Messages" {
auto = no
special_use = \Sent
}
mailbox Spam {
auto = create
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox virtual/All {
auto = no
special_use = \All
}
prefix separator = /
type = private
}
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
quota = maildir:User quota
quota_rule = *:storage=1G
quota_rule2 = Trash:storage=+100M
quota_rule3 = Sent:storage=+100M
quota_warning = storage=95%% quota-warning 95 %u
quota_warning2 = storage=80%% quota-warning 80 %u
sieve = /storage/vmail/%d/%n/sieve/dovecot.sieve
sieve_before = /storage/vmail/sieve/dovecot.sieve
sieve_dir = /storage/vmail/%d/%n/sieve
sieve_global = /storage/vmail/sieve
}
postmaster_address = postmaster at censored.hostname.com
protocols = " imap lmtp sieve pop3"
quota_full_tempfail = yes
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-userdb {
group = vmail
mode = 0666
user = vmail
}
}
service imap-login {
inet_listener imaps {
port = 993
ssl = yes
}
service_count = 0
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0666
user = postfix
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 1
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
service quota-warning {
executable = script /usr/local/bin/quota-warning.sh
unix_listener quota-warning {
user = vmail
}
user = vmail
}
ssl = required
ssl_ca = </etc/ssl/censored.hostname.com/ssl-bundle-mail.crt
ssl_cert = </etc/ssl/censored.hostname.com/censored_hostname.com.crt
ssl_cipher_list =
ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_key = </etc/ssl/censored.hostname.com/censored.hostname.com.key
ssl_protocols = !SSLv2 !SSLv3
ssl_require_crl = no
userdb {
args = uid=2000 gid=2000 home=/storage/vmail/%d/%n allow_all_users=yes
driver = static
}
protocol lmtp {
mail_plugins = " quota sieve"
}
protocol lda {
mail_plugins = " sieve quota"
}
protocol imap {
imap_client_workarounds = tb-extra-mailbox-sep
mail_plugins = " quota imap_quota"
}
protocol sieve {
mail_max_userip_connections = 10
}
protocol pop3 {
mail_plugins = " quota"
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_uidl_format = %08Xu%08Xv
}
Jules
2016-Nov-05 21:31 UTC
Defining INDEX target to other location than maildir seems to have no effect.
How can i commit this as bug report?> Am 30.10.2016 um 11:04 schrieb Julian Sternberg <jules at ispire.me>: > > Dovecot Version 2.2.13 > Linux Distribution: Debian Jessie > CPU Architecture: x64 > Filesystem: GlusterFS/NFS, XFS for Base System/Index Files. > Two Dovecot/Postfix nodes accessing same GlusterFS/NFS Maildir. > > Regardless what i choose in mail_location (:INDEX=MEMORY or :INDEX=/var/indexes/%d/%n) all Mailbox index files will still get created within the users mail_location maildir: ~/Maildir > > My mail_location Maildir directory is shared on GlusterFS mount so i need to get index files away from this share due locking mechanism and faster caching. > > The weird is, if i set INDEX to /var/indexes, the index files getting created sometimes but then not updated frequently and exist parallel on Maildir which are mostly newer than on /var/indexes. If you delete the dovecot.index* files from Maildir, they will get recreated immediatly on Imap access but not on the alternative set INDEX location, they are getting recreated within Maildir again. > > Here is doveconf -n Output: > > # 2.2.13: /etc/dovecot/dovecot.conf > # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.6 > auth_mechanisms = plain login cram-md5 > disable_plaintext_auth = no > first_valid_uid = 2000 > hostname = censored.hostname.com > last_valid_uid = 2000 > lda_mailbox_autocreate = yes > lda_mailbox_autosubscribe = yes > listen = * > lock_method = dotlock > mail_fsync = always > mail_gid = 2000 > mail_home = /storage/vmail/%d/%n > mail_location = maildir:~/Maildir:LAYOUT=fs:INDEX=MEMORY > mail_nfs_storage = yes > mail_privileged_group = vmail > mail_temp_dir = /var/tmp > mail_uid = 2000 > maildir_very_dirty_syncs = yes > 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 ihave > mmap_disable = yes > namespace inbox { > inbox = yes > location > mailbox Archive { > auto = no > special_use = \Archive > } > mailbox Archives { > auto = no > special_use = \Archive > } > mailbox "Deleted Items" { > auto = no > special_use = \Trash > } > mailbox "Deleted Messages" { > auto = no > special_use = \Trash > } > mailbox Drafts { > auto = no > special_use = \Drafts > } > mailbox Sent { > auto = subscribe > special_use = \Sent > } > mailbox "Sent Items" { > auto = no > special_use = \Sent > } > mailbox "Sent Messages" { > auto = no > special_use = \Sent > } > mailbox Spam { > auto = create > special_use = \Junk > } > mailbox Trash { > auto = subscribe > special_use = \Trash > } > mailbox virtual/All { > auto = no > special_use = \All > } > prefix > separator = / > type = private > } > passdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > plugin { > quota = maildir:User quota > quota_rule = *:storage=1G > quota_rule2 = Trash:storage=+100M > quota_rule3 = Sent:storage=+100M > quota_warning = storage=95%% quota-warning 95 %u > quota_warning2 = storage=80%% quota-warning 80 %u > sieve = /storage/vmail/%d/%n/sieve/dovecot.sieve > sieve_before = /storage/vmail/sieve/dovecot.sieve > sieve_dir = /storage/vmail/%d/%n/sieve > sieve_global = /storage/vmail/sieve > } > postmaster_address = postmaster at censored.hostname.com > protocols = " imap lmtp sieve pop3" > quota_full_tempfail = yes > service auth { > unix_listener /var/spool/postfix/private/auth { > group = postfix > mode = 0660 > user = postfix > } > unix_listener auth-userdb { > group = vmail > mode = 0666 > user = vmail > } > } > service imap-login { > inet_listener imaps { > port = 993 > ssl = yes > } > service_count = 0 > } > service lmtp { > unix_listener /var/spool/postfix/private/dovecot-lmtp { > group = postfix > mode = 0666 > user = postfix > } > } > service managesieve-login { > inet_listener sieve { > port = 4190 > } > service_count = 1 > } > service pop3-login { > inet_listener pop3 { > port = 110 > } > inet_listener pop3s { > port = 995 > ssl = yes > } > } > service quota-warning { > executable = script /usr/local/bin/quota-warning.sh > unix_listener quota-warning { > user = vmail > } > user = vmail > } > ssl = required > ssl_ca = </etc/ssl/censored.hostname.com/ssl-bundle-mail.crt > ssl_cert = </etc/ssl/censored.hostname.com/censored_hostname.com.crt > ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA > ssl_key = </etc/ssl/censored.hostname.com/censored.hostname.com.key > ssl_protocols = !SSLv2 !SSLv3 > ssl_require_crl = no > userdb { > args = uid=2000 gid=2000 home=/storage/vmail/%d/%n allow_all_users=yes > driver = static > } > protocol lmtp { > mail_plugins = " quota sieve" > } > protocol lda { > mail_plugins = " sieve quota" > } > protocol imap { > imap_client_workarounds = tb-extra-mailbox-sep > mail_plugins = " quota imap_quota" > } > protocol sieve { > mail_max_userip_connections = 10 > } > protocol pop3 { > mail_plugins = " quota" > pop3_client_workarounds = outlook-no-nuls oe-ns-eoh > pop3_uidl_format = %08Xu%08Xv > }
Aki Tuomi
2016-Nov-05 21:40 UTC
Defining INDEX target to other location than maildir seems to have no effect.
Hi! Thank you for reporting this, we'll look into it. Aki Tuomi Dovecot oy.> On November 5, 2016 at 11:31 PM Jules <jules at ispire.me> wrote: > > > How can i commit this as bug report? > > > Am 30.10.2016 um 11:04 schrieb Julian Sternberg <jules at ispire.me>: > > > > Dovecot Version 2.2.13 > > Linux Distribution: Debian Jessie > > CPU Architecture: x64 > > Filesystem: GlusterFS/NFS, XFS for Base System/Index Files. > > Two Dovecot/Postfix nodes accessing same GlusterFS/NFS Maildir. > > > > Regardless what i choose in mail_location (:INDEX=MEMORY or :INDEX=/var/indexes/%d/%n) all Mailbox index files will still get created within the users mail_location maildir: ~/Maildir > > > > My mail_location Maildir directory is shared on GlusterFS mount so i need to get index files away from this share due locking mechanism and faster caching. > > > > The weird is, if i set INDEX to /var/indexes, the index files getting created sometimes but then not updated frequently and exist parallel on Maildir which are mostly newer than on /var/indexes. If you delete the dovecot.index* files from Maildir, they will get recreated immediatly on Imap access but not on the alternative set INDEX location, they are getting recreated within Maildir again. > > > > Here is doveconf -n Output: > > > > # 2.2.13: /etc/dovecot/dovecot.conf > > # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.6 > > auth_mechanisms = plain login cram-md5 > > disable_plaintext_auth = no > > first_valid_uid = 2000 > > hostname = censored.hostname.com > > last_valid_uid = 2000 > > lda_mailbox_autocreate = yes > > lda_mailbox_autosubscribe = yes > > listen = * > > lock_method = dotlock > > mail_fsync = always > > mail_gid = 2000 > > mail_home = /storage/vmail/%d/%n > > mail_location = maildir:~/Maildir:LAYOUT=fs:INDEX=MEMORY > > mail_nfs_storage = yes > > mail_privileged_group = vmail > > mail_temp_dir = /var/tmp > > mail_uid = 2000 > > maildir_very_dirty_syncs = yes > > 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 ihave > > mmap_disable = yes > > namespace inbox { > > inbox = yes > > location > > mailbox Archive { > > auto = no > > special_use = \Archive > > } > > mailbox Archives { > > auto = no > > special_use = \Archive > > } > > mailbox "Deleted Items" { > > auto = no > > special_use = \Trash > > } > > mailbox "Deleted Messages" { > > auto = no > > special_use = \Trash > > } > > mailbox Drafts { > > auto = no > > special_use = \Drafts > > } > > mailbox Sent { > > auto = subscribe > > special_use = \Sent > > } > > mailbox "Sent Items" { > > auto = no > > special_use = \Sent > > } > > mailbox "Sent Messages" { > > auto = no > > special_use = \Sent > > } > > mailbox Spam { > > auto = create > > special_use = \Junk > > } > > mailbox Trash { > > auto = subscribe > > special_use = \Trash > > } > > mailbox virtual/All { > > auto = no > > special_use = \All > > } > > prefix > > separator = / > > type = private > > } > > passdb { > > args = /etc/dovecot/dovecot-sql.conf.ext > > driver = sql > > } > > plugin { > > quota = maildir:User quota > > quota_rule = *:storage=1G > > quota_rule2 = Trash:storage=+100M > > quota_rule3 = Sent:storage=+100M > > quota_warning = storage=95%% quota-warning 95 %u > > quota_warning2 = storage=80%% quota-warning 80 %u > > sieve = /storage/vmail/%d/%n/sieve/dovecot.sieve > > sieve_before = /storage/vmail/sieve/dovecot.sieve > > sieve_dir = /storage/vmail/%d/%n/sieve > > sieve_global = /storage/vmail/sieve > > } > > postmaster_address = postmaster at censored.hostname.com > > protocols = " imap lmtp sieve pop3" > > quota_full_tempfail = yes > > service auth { > > unix_listener /var/spool/postfix/private/auth { > > group = postfix > > mode = 0660 > > user = postfix > > } > > unix_listener auth-userdb { > > group = vmail > > mode = 0666 > > user = vmail > > } > > } > > service imap-login { > > inet_listener imaps { > > port = 993 > > ssl = yes > > } > > service_count = 0 > > } > > service lmtp { > > unix_listener /var/spool/postfix/private/dovecot-lmtp { > > group = postfix > > mode = 0666 > > user = postfix > > } > > } > > service managesieve-login { > > inet_listener sieve { > > port = 4190 > > } > > service_count = 1 > > } > > service pop3-login { > > inet_listener pop3 { > > port = 110 > > } > > inet_listener pop3s { > > port = 995 > > ssl = yes > > } > > } > > service quota-warning { > > executable = script /usr/local/bin/quota-warning.sh > > unix_listener quota-warning { > > user = vmail > > } > > user = vmail > > } > > ssl = required > > ssl_ca = </etc/ssl/censored.hostname.com/ssl-bundle-mail.crt > > ssl_cert = </etc/ssl/censored.hostname.com/censored_hostname.com.crt > > ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA > > ssl_key = </etc/ssl/censored.hostname.com/censored.hostname.com.key > > ssl_protocols = !SSLv2 !SSLv3 > > ssl_require_crl = no > > userdb { > > args = uid=2000 gid=2000 home=/storage/vmail/%d/%n allow_all_users=yes > > driver = static > > } > > protocol lmtp { > > mail_plugins = " quota sieve" > > } > > protocol lda { > > mail_plugins = " sieve quota" > > } > > protocol imap { > > imap_client_workarounds = tb-extra-mailbox-sep > > mail_plugins = " quota imap_quota" > > } > > protocol sieve { > > mail_max_userip_connections = 10 > > } > > protocol pop3 { > > mail_plugins = " quota" > > pop3_client_workarounds = outlook-no-nuls oe-ns-eoh > > pop3_uidl_format = %08Xu%08Xv > > }