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