[Dovecot] lazy_expunge and shared folders

Giedrius Liubavičius giedrius at su.lt
Wed Jul 2 11:41:44 UTC 2014


Hi,
    i've had the save problem.
    This is /quick/ and /dirty/ fix for this problem [gzipped patch file
attached]

    After patching source, recompile lazy_expunge plugin (make -C
src/plugins/lazy_expunge all install)
    AND add this to the configuration:
>     plugin {
>         lazy_expunge_ignore_namespace_not_found = yes
>     }

2014.05.26 17:12, Florian Tischler rašė:
> 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
>> }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: dovecot-2.2.13-lazy_expunge_acl_fix.diff.gz
Type: application/gzip
Size: 919 bytes
Desc: not available
URL: <http://dovecot.org/pipermail/dovecot/attachments/20140702/1d2467cc/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: giedrius.vcf
Type: text/x-vcard
Size: 197 bytes
Desc: not available
URL: <http://dovecot.org/pipermail/dovecot/attachments/20140702/1d2467cc/attachment.vcf>


More information about the dovecot mailing list