Hi, since migration to Dovecot 2.2 I have troubles with lazy_expunge as soon as a user shares a folder. The user the folder is shared to cannot login anymore, dovecot logs Fatal: lazy_expunge: Unknown namespace: '.EXPUNGED/' - When no folder is shared lazy_expunge is working fine, deleted mails are moved to the expunged namespace and can be recovered without any problems. - Sharing folders works as long as I disable lazy_expunge. I have used the config (with minor changes) with dovecot 2.0 for years without any problem. Switching to dovecot 2.2.10 (atrps repository) or 2.2.12 (dovecot enterprise repo) lazy_expunge and acl do not work together anymore. Is it a bug, a known limitation or is something wrong with my config? Any hints are welcome. Thanks in advance, Florian dovecot -n # 2.2.12.12 (03196f188677): /etc/dovecot/dovecot.conf # OS: Linux 2.6.32-042stab085.20 x86_64 CentOS release 6.5 (Final) auth_cache_negative_ttl = 10 mins auth_cache_size = 10 M auth_cache_ttl = 2 hours auth_failure_delay = 10 secs auth_mechanisms = plain login auth_socket_path = /var/run/dovecot/auth-userdb base_dir = /var/run/dovecot/ disable_plaintext_auth = no first_valid_gid = 105 first_valid_uid = 105 hostname = ... imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags imap_idle_notify_interval = 10 mins last_valid_uid = 105 listen = ... lmtp_save_to_detail_mailbox = yes login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c mail_gid = vimap mail_home = /var/imap/spool/%1n/%n mail_location = mdbox:~/mdbox mail_plugins = " fts fts_lucene acl" mail_temp_dir = /var/imap/tmp mail_uid = vimap 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 mbox_write_locks = fcntl mdbox_rotate_interval = 1 days namespace { list = children location = mdbox:/var/imap/spool/%%1n/%%n/mdbox:INDEXPVT=/var/imap/spool/%1n/%n/mdbox/shared/%%u prefix = User/%%u/ separator = / subscriptions = no type = shared } namespace expunged { hidden = yes list = no location = mdbox:/var/imap/spool/%1n/%n/mdbox:MAILBOXDIR=expunged prefix = .EXPUNGED/ separator = / subscriptions = no type = private } namespace inbox { inbox = yes location = mdbox:/var/imap/spool/%1n/%n/mdbox mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Learn { auto = subscribe } mailbox Learn/Ham { auto = subscribe } mailbox Learn/Spam { auto = subscribe } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Spam { auto = subscribe special_use = \Junk } mailbox Trash { auto = subscribe special_use = \Trash } mailbox virtual/All { special_use = \All } mailbox virtual/Flagged { special_use = \Flagged } prefix = separator = / type = private } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } passdb { args = /etc/dovecot/extra-users driver = passwd-file } plugin { acl = vfile:/var/imap/global-acls:cache_secs=300 acl_shared_dict = file:/var/imap/shared-mailboxes/shared-mailboxes fts = lucene fts_autoindex = yes fts_lucene = whitespace_chars=@. lazy_expunge = .EXPUNGED/ lazy_expunge_only_last_instance = yes recipient_delimiter = + sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_max_actions = 32 sieve_max_redirects = 4 sieve_max_script_size = 1M } pop3_client_workarounds = outlook-no-nuls oe-ns-eoh postmaster_address = postmaster at ... protocols = imap pop3 lmtp sieve service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = vimap mode = 0600 user = vimap } user = $default_internal_user } service imap-login { process_min_avail = 4 service_count = 0 } service imap { process_limit = 1024 vsz_limit = 256 M } service lmtp { inet_listener lmtp { address = ... port = 24 } } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } service_count = 1 vsz_limit = 64 M } service pop3-login { inet_listener pop3s { port = 995 ssl = yes } process_min_avail = 4 service_count = 0 } service pop3 { process_limit = 512 } ssl_cert = </etc/dovecot/ssl/... ssl_key = </etc/dovecot/ssl/... userdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } userdb { args = uid=vimap gid=vimap home=/var/imap/spool/%1n/%n driver = static } protocol lda { mail_plugins = " fts fts_lucene acl sieve" } protocol imap { mail_max_userip_connections = 20 mail_plugins = " fts fts_lucene acl imap_acl" } protocol lmtp { mail_plugins = " fts fts_lucene acl sieve" } protocol sieve { mail_max_userip_connections = 10 managesieve_implementation_string = Dovecot Pigeonhole managesieve_logout_format = bytes=%i/%o managesieve_max_line_length = 65536 } protocol pop3 { mail_max_userip_connections = 20 }
Am 20.05.2014 14:00, schrieb Florian:> Hi, > > since migration to Dovecot 2.2 I have troubles with lazy_expunge as soon as > a user shares a folder. The user the folder is shared to cannot login > anymore, dovecot logs Fatal: lazy_expunge: Unknown namespace: '.EXPUNGED/' > > - When no folder is shared lazy_expunge is working fine, deleted mails are > moved to the expunged namespace and can be recovered without any problems. > - Sharing folders works as long as I disable lazy_expunge. > > I have used the config (with minor changes) with dovecot 2.0 for years > without any problem. Switching to dovecot 2.2.10 (atrps repository) or > 2.2.12 (dovecot enterprise repo) lazy_expunge and acl do not work together > anymore. > > Is it a bug, a known limitation or is something wrong with my config? > Any hints are welcome. > > Thanks in advance, > Florian > > dovecot -n > > # 2.2.12.12 (03196f188677): /etc/dovecot/dovecot.conf > # OS: Linux 2.6.32-042stab085.20 x86_64 CentOS release 6.5 (Final) > auth_cache_negative_ttl = 10 mins > auth_cache_size = 10 M > auth_cache_ttl = 2 hours > auth_failure_delay = 10 secs > auth_mechanisms = plain login > auth_socket_path = /var/run/dovecot/auth-userdb > base_dir = /var/run/dovecot/ > disable_plaintext_auth = no > first_valid_gid = 105 > first_valid_uid = 105 > hostname = ... > imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags > imap_idle_notify_interval = 10 mins > last_valid_uid = 105 > listen = ... > lmtp_save_to_detail_mailbox = yes > login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c > mail_gid = vimap > mail_home = /var/imap/spool/%1n/%n > mail_location = mdbox:~/mdbox > mail_plugins = " fts fts_lucene acl" > mail_temp_dir = /var/imap/tmp > mail_uid = vimap > 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 > mbox_write_locks = fcntl > mdbox_rotate_interval = 1 days > namespace { > list = children > location = > mdbox:/var/imap/spool/%%1n/%%n/mdbox:INDEXPVT=/var/imap/spool/%1n/%n/mdbox/shared/%%u > prefix = User/%%u/ > separator = / > subscriptions = no > type = shared > } > namespace expunged { > hidden = yes > list = no > location = mdbox:/var/imap/spool/%1n/%n/mdbox:MAILBOXDIR=expunged > prefix = .EXPUNGED/ > separator = / > subscriptions = no > type = private > } > namespace inbox { > inbox = yes > location = mdbox:/var/imap/spool/%1n/%n/mdbox > mailbox Drafts { > auto = subscribe > special_use = \Drafts > } > mailbox Learn { > auto = subscribe > } > mailbox Learn/Ham { > auto = subscribe > } > mailbox Learn/Spam { > auto = subscribe > } > mailbox Sent { > auto = subscribe > special_use = \Sent > } > mailbox Spam { > auto = subscribe > special_use = \Junk > } > mailbox Trash { > auto = subscribe > special_use = \Trash > } > mailbox virtual/All { > special_use = \All > } > mailbox virtual/Flagged { > special_use = \Flagged > } > prefix = > separator = / > type = private > } > passdb { > args = /etc/dovecot/master-users > driver = passwd-file > master = yes > } > passdb { > args = /etc/dovecot/dovecot-ldap.conf.ext > driver = ldap > } > passdb { > args = /etc/dovecot/extra-users > driver = passwd-file > } > plugin { > acl = vfile:/var/imap/global-acls:cache_secs=300 > acl_shared_dict = file:/var/imap/shared-mailboxes/shared-mailboxes > fts = lucene > fts_autoindex = yes > fts_lucene = whitespace_chars=@. > lazy_expunge = .EXPUNGED/ > lazy_expunge_only_last_instance = yes > recipient_delimiter = + > sieve = ~/.dovecot.sieve > sieve_dir = ~/sieve > sieve_max_actions = 32 > sieve_max_redirects = 4 > sieve_max_script_size = 1M > } > pop3_client_workarounds = outlook-no-nuls oe-ns-eoh > postmaster_address = postmaster at ... > protocols = imap pop3 lmtp sieve > service auth { > unix_listener /var/spool/postfix/private/auth { > group = postfix > mode = 0660 > user = postfix > } > unix_listener auth-userdb { > group = vimap > mode = 0600 > user = vimap > } > user = $default_internal_user > } > service imap-login { > process_min_avail = 4 > service_count = 0 > } > service imap { > process_limit = 1024 > vsz_limit = 256 M > } > service lmtp { > inet_listener lmtp { > address = ... > port = 24 > } > } > service managesieve-login { > inet_listener sieve { > port = 4190 > } > inet_listener sieve_deprecated { > port = 2000 > } > service_count = 1 > vsz_limit = 64 M > } > service pop3-login { > inet_listener pop3s { > port = 995 > ssl = yes > } > process_min_avail = 4 > service_count = 0 > } > service pop3 { > process_limit = 512 > } > ssl_cert = </etc/dovecot/ssl/... > ssl_key = </etc/dovecot/ssl/... > userdb { > args = /etc/dovecot/dovecot-ldap.conf.ext > driver = ldap > } > userdb { > args = uid=vimap gid=vimap home=/var/imap/spool/%1n/%n > driver = static > } > protocol lda { > mail_plugins = " fts fts_lucene acl sieve" > } > protocol imap { > mail_max_userip_connections = 20 > mail_plugins = " fts fts_lucene acl imap_acl" > } > protocol lmtp { > mail_plugins = " fts fts_lucene acl sieve" > } > protocol sieve { > mail_max_userip_connections = 10 > managesieve_implementation_string = Dovecot Pigeonhole > managesieve_logout_format = bytes=%i/%o > managesieve_max_line_length = 65536 > } > protocol pop3 { > mail_max_userip_connections = 20 > } >"perhaps" related to this http://wiki2.dovecot.org/Plugins/Lazyexpunge ... Copy only the last instance (v2.2+) If mail has multiple copies (via IMAP COPY), each copy is normally moved to lazy expunge namespace when it's expunged. With v2.2+ you can set plugin { lazy_expunge_only_last_instance = yes } to copy only the last instance and immediately expunge the others. This may be useful if you want to provide a flat list of all expunged mails without duplicates in your webmail. With many clients this means that the last instance is always in the Trash mailbox. ... Best Regards MfG Robert Schetterer -- [*] sys4 AG http://sys4.de, +49 (89) 30 90 46 64 Franziskanerstra?e 15, 81669 M?nchen Sitz der Gesellschaft: M?nchen, Amtsgericht M?nchen: HRB 199263 Vorstand: Patrick Ben Koetter, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein
Am Dienstag, 20. Mai 2014, 14:00:11 schrieben Sie:> Hi, > > since migration to Dovecot 2.2 I have troubles with lazy_expunge as soon > as a user shares a folder. The user the folder is shared to cannot login > anymore, dovecot logs Fatal: lazy_expunge: Unknown namespace: > '.EXPUNGED/' > > - When no folder is shared lazy_expunge is working fine, deleted mails are > moved to the expunged namespace and can be recovered without any > problems. - Sharing folders works as long as I disable lazy_expunge. > > I have used the config (with minor changes) with dovecot 2.0 for years > without any problem. Switching to dovecot 2.2.10 (atrps repository) or > 2.2.12 (dovecot enterprise repo) lazy_expunge and acl do not work together > anymore.Hi, unfortunately I got no response to the acl breaks lazy_expunge problem. Maybe the developers can give me some feedback? Is it supposed (not) to work? Will it be fixed? Currently it prevents me from sucessfully migration from 2.0 to 2.2 without losing features. Thanks, Florian> Is it a bug, a known limitation or is something wrong with my config? > Any hints are welcome. > > Thanks in advance, > Florian > > dovecot -n > > # 2.2.12.12 (03196f188677): /etc/dovecot/dovecot.conf > # OS: Linux 2.6.32-042stab085.20 x86_64 CentOS release 6.5 (Final) > auth_cache_negative_ttl = 10 mins > auth_cache_size = 10 M > auth_cache_ttl = 2 hours > auth_failure_delay = 10 secs > auth_mechanisms = plain login > auth_socket_path = /var/run/dovecot/auth-userdb > base_dir = /var/run/dovecot/ > disable_plaintext_auth = no > first_valid_gid = 105 > first_valid_uid = 105 > hostname = ... > imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags > imap_idle_notify_interval = 10 mins > last_valid_uid = 105 > listen = ... > lmtp_save_to_detail_mailbox = yes > login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c > mail_gid = vimap > mail_home = /var/imap/spool/%1n/%n > mail_location = mdbox:~/mdbox > mail_plugins = " fts fts_lucene acl" > mail_temp_dir = /var/imap/tmp > mail_uid = vimap > 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 > mbox_write_locks = fcntl > mdbox_rotate_interval = 1 days > namespace { > list = children > location > mdbox:/var/imap/spool/%%1n/%%n/mdbox:INDEXPVT=/var/imap/spool/%1n/%n/mdbox > /shared/%%u prefix = User/%%u/ > separator = / > subscriptions = no > type = shared > } > namespace expunged { > hidden = yes > list = no > location = mdbox:/var/imap/spool/%1n/%n/mdbox:MAILBOXDIR=expunged > prefix = .EXPUNGED/ > separator = / > subscriptions = no > type = private > } > namespace inbox { > inbox = yes > location = mdbox:/var/imap/spool/%1n/%n/mdbox > mailbox Drafts { > auto = subscribe > special_use = \Drafts > } > mailbox Learn { > auto = subscribe > } > mailbox Learn/Ham { > auto = subscribe > } > mailbox Learn/Spam { > auto = subscribe > } > mailbox Sent { > auto = subscribe > special_use = \Sent > } > mailbox Spam { > auto = subscribe > special_use = \Junk > } > mailbox Trash { > auto = subscribe > special_use = \Trash > } > mailbox virtual/All { > special_use = \All > } > mailbox virtual/Flagged { > special_use = \Flagged > } > prefix > separator = / > type = private > } > passdb { > args = /etc/dovecot/master-users > driver = passwd-file > master = yes > } > passdb { > args = /etc/dovecot/dovecot-ldap.conf.ext > driver = ldap > } > passdb { > args = /etc/dovecot/extra-users > driver = passwd-file > } > plugin { > acl = vfile:/var/imap/global-acls:cache_secs=300 > acl_shared_dict = file:/var/imap/shared-mailboxes/shared-mailboxes > fts = lucene > fts_autoindex = yes > fts_lucene = whitespace_chars=@. > lazy_expunge = .EXPUNGED/ > lazy_expunge_only_last_instance = yes > recipient_delimiter = + > sieve = ~/.dovecot.sieve > sieve_dir = ~/sieve > sieve_max_actions = 32 > sieve_max_redirects = 4 > sieve_max_script_size = 1M > } > pop3_client_workarounds = outlook-no-nuls oe-ns-eoh > postmaster_address = postmaster at ... > protocols = imap pop3 lmtp sieve > service auth { > unix_listener /var/spool/postfix/private/auth { > group = postfix > mode = 0660 > user = postfix > } > unix_listener auth-userdb { > group = vimap > mode = 0600 > user = vimap > } > user = $default_internal_user > } > service imap-login { > process_min_avail = 4 > service_count = 0 > } > service imap { > process_limit = 1024 > vsz_limit = 256 M > } > service lmtp { > inet_listener lmtp { > address = ... > port = 24 > } > } > service managesieve-login { > inet_listener sieve { > port = 4190 > } > inet_listener sieve_deprecated { > port = 2000 > } > service_count = 1 > vsz_limit = 64 M > } > service pop3-login { > inet_listener pop3s { > port = 995 > ssl = yes > } > process_min_avail = 4 > service_count = 0 > } > service pop3 { > process_limit = 512 > } > ssl_cert = </etc/dovecot/ssl/... > ssl_key = </etc/dovecot/ssl/... > userdb { > args = /etc/dovecot/dovecot-ldap.conf.ext > driver = ldap > } > userdb { > args = uid=vimap gid=vimap home=/var/imap/spool/%1n/%n > driver = static > } > protocol lda { > mail_plugins = " fts fts_lucene acl sieve" > } > protocol imap { > mail_max_userip_connections = 20 > mail_plugins = " fts fts_lucene acl imap_acl" > } > protocol lmtp { > mail_plugins = " fts fts_lucene acl sieve" > } > protocol sieve { > mail_max_userip_connections = 10 > managesieve_implementation_string = Dovecot Pigeonhole > managesieve_logout_format = bytes=%i/%o > managesieve_max_line_length = 65536 > } > protocol pop3 { > mail_max_userip_connections = 20 > }-- Florian Tischler System Administrator *Johann Radon Institute for Computational and Applied Mathematics (RICAM) http://www.ricam.oeaw.ac.at/ florian.tischler at oeaw.ac.at *Industrial Mathematics Institute http://www.indmath.uni-linz.ac.at/ tischler at indmath.uni-linz.ac.at http://www.ricam.oeaw.ac.at/people/page.cgi?firstn=Florian;lastn=Tischler GPG-Key: http://www.ricam.oeaw.ac.at/gpg/florian_tischler.asc tel: +43 732 2468 5250 fax: +43 732 2468 5212