Thomas Robers
2018-Jun-06 11:53 UTC
Shared mailboxes, index files and 'per-user-seen' flags
Hello, i have a dovecot server version 2.3.1 under CentOS 6.9 and we're using shared mailboxes with index files shared. With this configuration I can see a lot of error messages like: Jun 6 13:20:31 mail dovecot: Error: imap(userA at tutech.de)<4513> <onjjWPdtDuLAqG3R>: /export/home/imap/userA at tutech.de/shared /userB at tutech.de/folder/dovecot.index.pvt view is inconsistent In 10-mail.conf the location setting is: location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u I thought setting the index files to "not shared" might help to get rid of the errors, so I changed the setting to: location = maildir:%%h/Maildir:INDEX=%h/shared/%%u:INDEXPVT=%h /shared/%%u like it's mentioned in the Dovecot wiki. But that doesn't work as I expected, because the 'per-user-seen' flags do not work correctly anymore, i think. If UserA, who has UserB as shared mailbox, changes the seen flags of UserBs INBOX, UserBs seen flags are also changed. The other way, if UserB changes seen flags in his INBOX they are not changed in the shared view of UserA. Is this the supposed way to work or do i have an error in the configuration? Any help is appreciated. Thanks, Thomas. Here's my currently used configuration: # 2.3.1 (c5a5c0c82): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.devel (61b47828) # OS: Linux 2.6.32-696.23.1.el6.x86_64 x86_64 CentOS release 6.9 (Final) ext4 # Hostname: mail.tutech.de auth_master_user_separator = * auth_mechanisms = plain login auth_verbose = yes disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it doveadm_port = 12345 imap_max_line_length = 2 M mail_debug = yes mail_location = maildir:/export/home/imap/%Lu/Maildir mail_plugins = acl zlib mail_log notify mail_prefetch_count = 1 mailbox_idle_check_interval = 10 secs 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 index ihave duplicate mime foreverypart extracttext namespace { hidden = no ignore_on_failure = no inbox = no list = children location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u prefix = shared/%%u/ separator = / subscriptions = yes type = shared } namespace inbox { hidden = no inbox = yes list = yes location mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = INBOX/ separator = / type = private } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { acl = vfile:/etc/dovecot/global-acls:cache_secs=300 acl_shared_dict = file:/export/home/shared-db/shared-mailboxes mail_log_events = append delete undelete expunge copy mailbox_delete mailbox_rename flag_change mail_log_fields = uid box msgid size from flags mail_replica = tcp:mail2.tutech.de sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_global = /var/lib/dovecot/sieve/global/ sieve_user_log = ~/.dovecot.sieve.log zlib_save = gz zlib_save_level = 6 } protocols = imap pop3 lmtp sieve sieve service aggregator { fifo_listener replication-notify-fifo { mode = 0666 user = vmail } unix_listener replication-notify { mode = 0666 user = vmail } } service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 } unix_listener auth-userdb { group = vmail mode = 0660 user = vmail } } service config { unix_listener config { user = vmail } } service doveadm { inet_listener { port = 12345 } user = vmail } service imap-login { inet_listener imaps { port = 993 ssl = yes } process_limit = 500 process_min_avail = 20 } service imap { executable = imap } service lmtp { inet_listener lmtp { address = 127.0.0.1 port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } service pop3-login { inet_listener pop3s { port = 995 ssl = yes } } service pop3 { executable = pop3 } service replicator { unix_listener replicator-doveadm { mode = 0666 } } ssl = required ssl_cert = </etc/pki/dovecot/certs/mail.tutech.de.crt_chain ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!EXPORT ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it syslog_facility = local6 userdb { args = /etc/dovecot/dovecot-ldap-userdb.conf.ext driver = ldap } protocol lmtp { mail_plugins = acl zlib mail_log notify sieve } protocol imap { mail_max_userip_connections = 100 mail_plugins = acl zlib mail_log notify imap_zlib imap_acl rawlog_dir = /tmp/rawlog/%u }
Marco Giunta
2018-Jun-07 07:37 UTC
Shared mailboxes, index files and 'per-user-seen' flags
Hi Thomas, it is a known problem: https://www.dovecot.org/pipermail/dovecot/2018-February/111057.html Try the solution suggested in above mail; it works for me. Thanks, Marco On 2018-06-06 13:53, Thomas Robers wrote:> Hello, > > i have a dovecot server version 2.3.1 under CentOS 6.9 and we're > using shared mailboxes with index files shared. With this configuration > I can see a lot of error messages like: > > ?? Jun? 6 13:20:31 mail dovecot: Error: imap(userA at tutech.de)<4513> > ?? <onjjWPdtDuLAqG3R>: /export/home/imap/userA at tutech.de/shared > ?? /userB at tutech.de/folder/dovecot.index.pvt view is inconsistent > > In 10-mail.conf the location setting is: > > ?? location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u > > I thought setting the index files to "not shared" might help to > get rid of the errors, so I changed the setting to: > > ?? location = maildir:%%h/Maildir:INDEX=%h/shared/%%u:INDEXPVT=%h > ?? /shared/%%u > > like it's mentioned in the Dovecot wiki. But that doesn't work as > I expected, because the 'per-user-seen' flags do not work correctly > anymore, i think. If UserA, who has UserB as shared mailbox, > changes the seen flags of UserBs INBOX, UserBs seen flags are also > changed. The other way, if UserB changes seen flags in his INBOX > they are not changed in the shared view of UserA. Is this the > supposed way to work? or do i have an error in the configuration? > > Any help is appreciated. > > Thanks, Thomas. > > Here's my currently used configuration: > > # 2.3.1 (c5a5c0c82): /etc/dovecot/dovecot.conf > # Pigeonhole version 0.5.devel (61b47828) > # OS: Linux 2.6.32-696.23.1.el6.x86_64 x86_64 CentOS release 6.9 (Final) > ext4 > # Hostname: mail.tutech.de > auth_master_user_separator = * > auth_mechanisms = plain login > auth_verbose = yes > disable_plaintext_auth = no > doveadm_password =? # hidden, use -P to show it > doveadm_port = 12345 > imap_max_line_length = 2 M > mail_debug = yes > mail_location = maildir:/export/home/imap/%Lu/Maildir > mail_plugins = acl zlib mail_log notify > mail_prefetch_count = 1 > mailbox_idle_check_interval = 10 secs > 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 index ihave duplicate mime foreverypart > extracttext > namespace { > ? hidden = no > ? ignore_on_failure = no > ? inbox = no > ? list = children > ? location = maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u > ? prefix = shared/%%u/ > ? separator = / > ? subscriptions = yes > ? type = shared > } > namespace inbox { > ? hidden = no > ? inbox = yes > ? list = yes > ? location > ? mailbox Drafts { > ??? special_use = \Drafts > ? } > ? mailbox Junk { > ??? special_use = \Junk > ? } > ? mailbox Sent { > ??? special_use = \Sent > ? } > ? mailbox "Sent Messages" { > ??? special_use = \Sent > ? } > ? mailbox Trash { > ??? special_use = \Trash > ? } > ? prefix = INBOX/ > ? separator = / > ? type = private > } > > passdb { > ? args = /etc/dovecot/master-users > ? driver = passwd-file > ? master = yes > } > passdb { > ? args = /etc/dovecot/dovecot-ldap.conf.ext > ? driver = ldap > } > plugin { > ? acl = vfile:/etc/dovecot/global-acls:cache_secs=300 > ? acl_shared_dict = file:/export/home/shared-db/shared-mailboxes > ? mail_log_events = append delete undelete expunge copy mailbox_delete > mailbox_rename flag_change > ? mail_log_fields = uid box msgid size from flags > ? mail_replica = tcp:mail2.tutech.de > ? sieve = ~/.dovecot.sieve > ? sieve_dir = ~/sieve > ? sieve_global = /var/lib/dovecot/sieve/global/ > ? sieve_user_log = ~/.dovecot.sieve.log > ? zlib_save = gz > ? zlib_save_level = 6 > } > protocols = imap pop3 lmtp sieve sieve > service aggregator { > ? fifo_listener replication-notify-fifo { > ??? mode = 0666 > ??? user = vmail > ? } > ? unix_listener replication-notify { > ??? mode = 0666 > ??? user = vmail > ? } > } > service auth { > ? unix_listener /var/spool/postfix/private/auth { > ??? mode = 0666 > ? } > ? unix_listener auth-userdb { > ??? group = vmail > ??? mode = 0660 > ??? user = vmail > ? } > } > service config { > ? unix_listener config { > ??? user = vmail > ? } > } > service doveadm { > ? inet_listener { > ??? port = 12345 > ? } > ? user = vmail > } > service imap-login { > ? inet_listener imaps { > ??? port = 993 > ??? ssl = yes > ? } > ? process_limit = 500 > ? process_min_avail = 20 > } > service imap { > ? executable = imap > } > service lmtp { > ? inet_listener lmtp { > ??? address = 127.0.0.1 > ??? port = 24 > ? } > } > service managesieve-login { > ? inet_listener sieve { > ??? port = 4190 > ? } > ? inet_listener sieve_deprecated { > ??? port = 2000 > ? } > } > service pop3-login { > ? inet_listener pop3s { > ??? port = 995 > ??? ssl = yes > ? } > } > service pop3 { > ? executable = pop3 > } > service replicator { > ? unix_listener replicator-doveadm { > ??? mode = 0666 > ? } > } > ssl = required > ssl_cert = </etc/pki/dovecot/certs/mail.tutech.de.crt_chain > ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!EXPORT > ssl_dh =? # hidden, use -P to show it > ssl_key =? # hidden, use -P to show it > syslog_facility = local6 > userdb { > ? args = /etc/dovecot/dovecot-ldap-userdb.conf.ext > ? driver = ldap > } > protocol lmtp { > ? mail_plugins = acl zlib mail_log notify sieve > } > protocol imap { > ? mail_max_userip_connections = 100 > ? mail_plugins = acl zlib mail_log notify imap_zlib imap_acl > ? rawlog_dir = /tmp/rawlog/%u > } >
Apparently Analagous Threads
- Dovecot 2.2.14 and per user \Seen flags
- Fatal: lazy_expunge: Unknown namespace: '.EXPUNGED/'
- rawlog segfaults (error 4 in libdovecot.so.0.0.0)
- Panic: data stack: Out of memory when allocating bytes
- Panic: file ostream-zlib.c: line 36 (o_stream_zlib_close): assertion failed: