Replication: Can't unsubscribe from shared mailbox

Mike Fröhner mikefroehner at gmx.de
Mon Jan 16 14:34:20 UTC 2017


Hi Karsten,

I have a similar issue with current 2.2.27 version on CentOS with public 
folder/namespaces on a active/active replication.

I am able to subscribe the public folder on one dovecot, but it is not 
replicated to the 2nd dovecot throught dsync. Everything else is fine 
with dsync, also the replication of the subscription of private/personal 
folder.

Currently I am trying to debug this at the source code, but my C is 
quite dusty.

Mike;

On 01/16/2017 03:19 PM, Karsten Heiken wrote:
> Hi all,
>
> I hope it's okay to bump this once after four months.
>
> In the meantime we updated to 2.2.26.0 and our problem still persists:
> After unsubscribing from a shared mailbox, the subscription instantly
> re-appears.
> A pcap was attached to my original mail, in case it has something to do
> with dsync:
> http://dovecot.org/pipermail/dovecot/2016-September/105419.html
>
> Is anyone on this mailing list using replication in combination with
> shared folders?
> Does this problem exist for anyone else? I would love to hear from
> people who got this working or if anyone else is affected by this.
>
> My original post is at the end of this email; the current doveconf is
> also attached.
>
>
> Thank you very much,
>
> Karsten
>
> # doveconf -n
> # 2.2.26.0 (23d1de6): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.16 (fed8554)
> # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.6
> auth_cache_size = 10 M
> auth_cache_ttl = 2 hours
> default_vsz_limit = 1 G
> dict {
>   acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
> }
> lmtp_rcpt_check_quota = yes
> login_trusted_networks = xxx
> mail_attribute_dict = file:%h/dovecot-attributes
> mail_gid = 7777
> mail_location = mdbox:%h/mdbox
> mail_plugins = " zlib quota acl notify replication"
> mail_server_admin = mailto:postmaster at xxx
> mail_server_comment = xxx
> mail_shared_explicit_inbox = yes
> mail_uid = 7777
> mailbox_list_index = yes
> 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 imapflags notify
> mdbox_rotate_size = 10 M
> namespace {
>   hidden = no
>   ignore_on_failure = no
>   inbox = no
>   list = children
>   location = mdbox:%%h/mdbox:INDEXPVT=%h/shared/%%u
>   prefix = shared/%%u/
>   separator = /
>   subscriptions = no
>   type = shared
> }
> namespace inbox {
>   hidden = no
>   inbox = yes
>   list = yes
>   location =
>   mailbox 30dTrash {
>     auto = subscribe
>     autoexpunge = 30 days
>     special_use = \Junk
>   }
>   mailbox Drafts {
>     auto = subscribe
>     special_use = \Drafts
>   }
>   mailbox Sent {
>     auto = subscribe
>     special_use = \Sent
>   }
>   mailbox Trash {
>     auto = subscribe
>     special_use = \Trash
>   }
>   prefix =
>   separator = /
>   subscriptions = yes
>   type = private
> }
> passdb {
>   args = /etc/dovecot/dovecot-ldap.conf.ext
>   driver = ldap
> }
> plugin {
>   acl = vfile
>   acl_shared_dict = proxy::acl
>   mail_replica = tcp:xxx:24245
>   quota = dict:User quota::noenforcing:file:%h/dovecot-quota
>   quota_grace = 2%%
>   quota_rule = *:storage=8G
>   quota_status_nouser = DUNNO
>   quota_status_overquota = DUNNO
>   quota_status_success = DUNNO
>   sieve = ~/.dovecot.sieve
>   sieve_dir = ~/sieve
>   sieve_extensions = +notify +imapflags
>   sieve_max_actions = 250
>   sieve_max_redirects = 200
>   zlib_save = gz
>   zlib_save_level = 6
> }
> postmaster_address = postmaster at xxx
> protocols = " imap lmtp sieve pop3 sieve"
> replication_dsync_parameters = -d -l 30 -U -N
> replication_max_conns = 5
> service aggregator {
>   fifo_listener replication-notify-fifo {
>     user = vmail
>   }
>   unix_listener replication-notify {
>     user = vmail
>   }
> }
> service auth {
>   unix_listener auth-userdb {
>     group = vmail
>     user = vmail
>   }
> }
> service dict {
>   unix_listener dict {
>     group = vmail
>     mode = 0660
>     user = vmail
>   }
> }
> service doveadm {
>   inet_listener {
>     port = 24245
>   }
> }
> service imap-login {
>   process_min_avail = 16
>   service_count = 0
> }
> service imap {
>   executable = imap postlogin
>   process_limit = 30000
> }
> service lmtp {
>   inet_listener lmtp {
>     port = 24
>   }
>   vsz_limit = 1 G
> }
> service managesieve-login {
>   inet_listener sieve {
>     port = 4190
>   }
> }
> service managesieve {
>   process_limit = 1024
> }
> service pop3-login {
>   process_min_avail = 4
>   service_count = 0
> }
> service pop3 {
>   process_limit = 2500
> }
> service postlogin {
>   executable = script-login -d rawlog /usr/local/bin/dovecot-postlogin.sh
> }
> service quota-status {
>   client_limit = 1
>   executable = quota-status -p postfix
>   inet_listener {
>     port = 12340
>   }
> }
> service replicator {
>   process_min_avail = 1
>   unix_listener replicator-doveadm {
>     mode = 0600
>     user = vmail
>   }
> }
> shutdown_clients = no
> ssl_cert = </etc/dovecot/private/fullchain.pem
> ssl_key =  # hidden, use -P to show it
> syslog_facility = local6
> userdb {
>   args = /etc/dovecot/dovecot-ldap.conf.ext
>   default_fields = home=/var/vmail/%Ld/%Ln quota_rule=*:bytes=8589934592
>   driver = ldap
> }
> verbose_proctitle = yes
> protocol lmtp {
>   mail_plugins = " zlib quota acl notify replication sieve quota"
> }
> protocol lda {
>   mail_plugins = " zlib quota acl notify replication sieve"
> }
> protocol imap {
>   imap_metadata = yes
>   mail_max_userip_connections = 100
>   mail_plugins = " zlib quota acl notify replication imap_quota imap_acl"
> }
> protocol pop3 {
>   mail_max_userip_connections = 10
>   mail_plugins = " zlib quota acl notify replication"
> }
>
>
> Am 13.09.2016 um 13:43 schrieb Karsten Heiken:
>> Hi,
>>
>> I am running two dovecot servers active/active.
>> Everything runs pretty great, except for the replication of
>> subscriptions in a shared namespace.
>>
>> When I unsubscribe from a folder the subscription instantly
>> re-appears. The timestamp on the subscriptions file is updated, but
>> the entry is still in there.
>> If the other node is shut down, everything works as expected, which
>> leads me to believe that the subscription is re-applied upon a
>> replicator-run.
>>
>> I attached a tcpdump of a dsync run.
>> The only action that was executed was to unsubscribe from the folder
>> shared/weinrot at luis.uni-hannover.de/INBOX.
>>
>> Is there any other way I might help debugging this?
>>
>>
>> Thanks,
>> Karsten
>>
>>
>> # 2.2.24 (a82c823): /etc/dovecot/dovecot.conf
>> # Pigeonhole version 0.4.13 (7b14904)
>> # OS: Linux 2.6.32-44-pve x86_64 Debian 8.5
>> default_vsz_limit = 512 M
>> dict {
>>    acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
>> }
>> imap_max_line_length = 2 M
>> lmtp_rcpt_check_quota = yes
>> mail_attribute_dict = file:%h/Maildir/dovecot-attributes
>> mail_gid = 7777
>> mail_location = maildir:%h/Maildir:LAYOUT=fs:DIRNAME=maiLdir
>> mail_plugins = " zlib quota acl notify replication "
>> mail_shared_explicit_inbox = yes
>> mail_uid = 7777
>> mailbox_list_index = yes
>> 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 imapflags notify
>> namespace {
>>    hidden = no
>>    ignore_on_failure = no
>>    inbox = no
>>    list = children
>>    location =
>> maildir:%%h/Maildir:INDEXPVT=%h/shared/%%u:LAYOUT=fs:DIRNAME=maiLdir
>>    prefix = shared/%%u/
>>    separator = /
>>    subscriptions = yes
>>    type = shared
>> }
>> namespace inbox {
>>    hidden = no
>>    inbox = yes
>>    list = yes
>>    location =
>>    mailbox 30dTrash {
>>      auto = subscribe
>>      autoexpunge = 30 days
>>      special_use = \Junk
>>    }
>>    mailbox Drafts {
>>      auto = subscribe
>>      special_use = \Drafts
>>    }
>>    mailbox Sent {
>>      auto = subscribe
>>      special_use = \Sent
>>    }
>>    mailbox Trash {
>>      auto = subscribe
>>      special_use = \Trash
>>    }
>>    prefix =
>>    separator = /
>>    subscriptions = yes
>>    type = private
>> }
>> passdb {
>>    args = /etc/dovecot/dovecot-ldap.conf.ext
>>    driver = ldap
>> }
>> plugin {
>>    acl = vfile
>>    acl_shared_dict = proxy::acl
>>    mail_replica = tcp:10.6.1.10:24245
>>    quota = maildir:Postfach-Limit
>>    quota_grace = 2%%
>>    quota_rule = *:storage=8G
>>    quota_status_nouser = DUNNO
>>    quota_status_overquota = 552 5.2.2 Mailbox is full
>>    quota_status_success = DUNNO
>>    sieve = ~/.dovecot.sieve
>>    sieve_dir = ~/sieve
>>    sieve_extensions = +notify +imapflags
>>    sieve_max_actions = 250
>>    sieve_max_redirects = 200
>>    zlib_save = gz
>>    zlib_save_level = 6
>> }
>> protocols = " imap lmtp sieve pop3 sieve"
>> replication_dsync_parameters = -d -l 300 -U -N
>> service aggregator {
>>    fifo_listener replication-notify-fifo {
>>      user = vmail
>>    }
>>    unix_listener replication-notify {
>>      user = vmail
>>    }
>> }
>> service auth {
>>    unix_listener auth-userdb {
>>      group = vmail
>>      user = vmail
>>    }
>> }
>> service dict {
>>    unix_listener dict {
>>      group = vmail
>>      mode = 0660
>>      user = vmail
>>    }
>> }
>> service doveadm {
>>    inet_listener {
>>      port = 24245
>>    }
>> }
>> service imap-login {
>>    process_min_avail = 16
>>    service_count = 0
>> }
>> service imap {
>>    executable = imap postlogin
>>    process_limit = 30000
>> }
>> service lmtp {
>>    inet_listener lmtp {
>>      port = 24
>>    }
>>    vsz_limit = 1 G
>> }
>> service managesieve-login {
>>    inet_listener sieve {
>>      port = 4190
>>    }
>> }
>> service managesieve {
>>    process_limit = 1024
>> }
>> service pop3-login {
>>    process_min_avail = 4
>>    service_count = 0
>> }
>> service pop3 {
>>    process_limit = 2500
>> }
>> service postlogin {
>>    executable = script-login -d rawlog
>> /usr/local/bin/dovecot-postlogin.sh
>> }
>> service quota-status {
>>    client_limit = 1
>>    executable = quota-status -p postfix
>>    inet_listener {
>>      port = 12340
>>    }
>> }
>> service replicator {
>>    process_min_avail = 1
>>    unix_listener replicator-doveadm {
>>      mode = 0600
>>      user = vmail
>>    }
>> }
>> shutdown_clients = no
>> ssl_cert = </etc/dovecot/private/fullchain.pem
>> ssl_key = </etc/dovecot/private/privkey.pem
>> syslog_facility = local6
>> userdb {
>>    args = /etc/dovecot/dovecot-ldap.conf.ext
>>    default_fields = home=/var/vmail/%Ld/%Ln quota_rule=*:bytes=8589934592
>>    driver = ldap
>> }
>> verbose_proctitle = yes
>> protocol lmtp {
>>    mail_plugins = " zlib quota acl notify replication  sieve quota"
>> }
>> protocol lda {
>>    mail_plugins = " zlib quota acl notify replication  sieve"
>> }
>> protocol imap {
>>    imap_metadata = yes
>>    mail_max_userip_connections = 100
>>    mail_plugins = " zlib quota acl notify replication  imap_quota
>> imap_acl"
>> }
>> protocol pop3 {
>>    mail_max_userip_connections = 10
>>    mail_plugins = " zlib quota acl notify replication"
>> }
>>
>


More information about the dovecot mailing list