acl and lazy_expunge plugins are incompatible?

Paolo Cravero paolo.cravero at csi.it
Tue Mar 3 15:36:37 UTC 2015


Hello list.
Following two previous unanswered requests
(http://www.dovecot.org/list/dovecot/2014-August/097449.html and
http://www.dovecot.org/list/dovecot/2014-May/096261.html), I fell into the
same problem: ACL and lazy_expunge plugins do not work together.

I had lazy_expunge enabled working OK. Then I activated ACL plugin, and gave
dovecot.2 visibily over paolo.cravero's Inbox: the IMAP connection fails on
server-side. Relevant debug log is:

Mar  3 15:59:02 tst-msg03 dovecot: imap(dovecot.2 at csi.it): Debug: Quota
grace: root=User quota bytes=576716800 (10%)
Mar  3 15:59:02 tst-msg03 dovecot: imap(dovecot.2 at csi.it): Debug: dict
quota: user=paolo.cravero at csi.it,
uri=file:/maildata1/home/csi.it/p/paolo.cravero/dovecot-quota, noenforcing=0
Mar  3 15:59:02 tst-msg03 dovecot: imap(dovecot.2 at csi.it): Debug: fs:
root=/maildata1/main/csi.it/p/paolo.cravero,
index=/maildata1/indexes/csi.it/p/paolo.cravero, indexpvt=, control=,
inbox=, alt=/maildata1/altstorage/csi.it/p/paolo.cravero
Mar  3 15:59:02 tst-msg03 dovecot: imap(dovecot.2 at csi.it): Debug: acl:
initializing backend with data: vfile
Mar  3 15:59:02 tst-msg03 dovecot: imap(dovecot.2 at csi.it): Debug: acl: acl
username = paolo.cravero at csi.it
Mar  3 15:59:02 tst-msg03 dovecot: imap(dovecot.2 at csi.it): Debug: acl: owner
= 1
Mar  3 15:59:02 tst-msg03 dovecot: imap(dovecot.2 at csi.it): Debug: acl vfile:
Global ACLs disabled
Mar  3 15:59:02 tst-msg03 dovecot: imap(dovecot.2 at csi.it): Fatal:
lazy_expunge: Unknown namespace: '.EXPUNGED/'


Removing the lazy_expunge, ACLs do work as expected and I can add/remove/use
them.


Is there a known compatibility issue? Or there's something wrong in my
config and someone else is running with both plugins enabled?

Thanks,
Paolo

PS: output of dovecot -n:

# 2.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-431.el6.x86_64 x86_64 Red Hat Enterprise Linux Server
release 6.5 (Santiago) ext3
auth_mechanisms = plain login
disable_plaintext_auth = no
imap_client_workarounds = tb-extra-mailbox-sep
lmtp_save_to_detail_mailbox = yes
mail_attachment_dir = /maildata1/attachments
mail_attachment_hash = %{sha256}
mail_debug = yes
mail_gid = 500
mail_location =
mdbox:/maildata1/main/%d/%1n/%n:ALT=/maildata1/altstorage/%d/%1n/%n:INDEX=/maildata1/indexes/%d/%1n/%n
mail_plugins = quota mail_log notify lazy_expunge acl
mail_uid = 500
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 duplicate
mbox_write_locks = fcntl
mdbox_rotate_size = 50 M
namespace {
  hidden = no
  list = yes
  location =
mdbox:/maildata1/main/%d/%1n/%n:INDEX=/maildata1/indexes/%d/%1n/%n:MAILBOXDIR=expunged
  prefix = .EXPUNGED/
  subscriptions = no
}
namespace {
  list = children
  location =
mdbox:/maildata1/main/%%d/%%1n/%%n:ALT=/maildata1/altstorage/%%d/%%1n/%%n:INDEX=/maildata1/indexes/%%d/%%1n/%%n
  prefix = user/%%u/
  separator = /
  type = shared
}
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
  type = private
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  acl = vfile
  acl_shared_dict = file:/maildata1/db/shared-mailboxes.db
  lazy_expunge = .EXPUNGED/
  mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename flag_change append
  mail_log_fields = uid box msgid size flags vsize
  quota = dict:User quota::file:%h/dovecot-quota
  quota_grace = 10%%
  quota_rule = *:storage=10G
  quota_rule2 = Trash:storage=+100M
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
}
protocols = imap pop3 lmtp sieve
service auth {
  unix_listener auth-userdb {
    group = vmail
    user = vmail
  }
}
service lmtp {
  inet_listener lmtp {
    address = 10.102.42.114
    port = 24
  }
  process_min_avail = 2
  user = vmail
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  args = /etc/dovecot/dovecot-ldap.conf.ext
  driver = ldap
}
protocol lmtp {
  mail_plugins = quota mail_log notify lazy_expunge acl sieve
}
protocol lda {
  mail_plugins = quota mail_log notify lazy_expunge acl sieve
}
protocol imap {
  mail_plugins = quota mail_log notify lazy_expunge acl imap_quota imap_acl
}


More information about the dovecot mailing list