replication and .dovecot.lda-dupes

Stephan Bosch stephan at rename-it.nl
Wed Apr 25 18:04:42 EEST 2018



Op 25-4-2018 om 14:37 schreef Patrick Cernko:
> Hi list,
>
> it's been 2 months now since my initial posting (s.b.). I wonder if I 
> could get at least a "still working on it" statement from the devs or 
> something like that?

We have plans to make the lda-dupes database a dict. In that case 
there's much more flexibility to make this work across replication.

Regards,

Stephan.

>
> On 22.02.2018 16:42, Patrick Cernko wrote:
>> Hi list,
>>
>> this question was already posted a few years ago
>> (https://www.dovecot.org/list/dovecot/2014-November/098585.html). I
>> already asked the original queriest and he told me, that he never got an
>> solution or workaround but it was not important enough for him.
>>
>>
>> When using replication in conjunction with sieve vacations, the
>> .dovecot.lda-dupes file is not synced with the other server. So when
>> delivering to both servers (round-robin or randomized), senders might
>> get more vacation mails than configured as the other server does not
>> know, that the first one already sent a vacation message.
>>
>> Is this a bug or intentional? If it is a bug, I hereby ask for a fix,
>> please.
>>
>>
>> We are using Dovecot version 2.2.27 on Debian/stretch.
>> This is dovecot -n (hostnames anonymized):
>>
>> # 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
>> # Pigeonhole version 0.4.16 (fed8554)
>> # OS: Linux 4.9.76.1.amd64-smp x86_64 Debian 9.3
>> auth_verbose = yes
>> default_vsz_limit = 2 G
>> doveadm_password =  # hidden, use -P to show it
>> doveadm_port = 12345
>> listen = *
>> login_log_format_elements = pid=%p user=<%u> method=%m rip=%r lip=%l
>> mpid=%e %c
>> mail_attachment_dir = /IMAP/mail/attachments
>> mail_attachment_fs = sis-queue /IMAP/mail/attachments/queue:posix
>> mail_home = /IMAP/mail/mailboxes/%u
>> mail_location = mdbox:~/mdbox
>> mail_log_prefix = "%s(%u[%p]): "
>> mail_max_userip_connections = 0
>> mail_plugins = " notify replication zlib fts fts_squat"
>> maildir_stat_dirs = 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
>> namespace inbox {
>>    inbox = yes
>>    location =
>>    mailbox Drafts {
>>      special_use = \Drafts
>>    }
>>    mailbox Junk {
>>      special_use = \Junk
>>    }
>>    mailbox Sent {
>>      special_use = \Sent
>>    }
>>    mailbox "Sent Messages" {
>>      special_use = \Sent
>>    }
>>    mailbox Trash {
>>      special_use = \Trash
>>    }
>>    prefix =
>> }
>> passdb {
>>    args = /etc/dovecot/ldap.conf
>>    driver = ldap
>> }
>> plugin {
>>    fts = squat
>>    fts_autoindex = yes
>>    fts_squat = partial=4 full=10
>>    mail_replica = tcp:other-server
>>    sieve = file:~/sieve;active=~/.dovecot.sieve
>>    zlib_save = gz
>>    zlib_save_level = 3
>> }
>> postmaster_address = <>
>> protocols = " imap lmtp sieve"
>> service aggregator {
>>    fifo_listener replication-notify-fifo {
>>      mode = 0666
>>    }
>>    unix_listener replication-notify {
>>      mode = 0666
>>    }
>> }
>> service anvil {
>>    client_limit = 2250
>> }
>> service auth {
>>    client_limit = 2447
>> }
>> service doveadm {
>>    inet_listener doveadm-server {
>>      port = 12345
>>    }
>> }
>> service imap-login {
>>    inet_listener imap {
>>      port = 0
>>    }
>>    process_limit = 2047
>> }
>> service imap {
>>    process_limit = 2047
>> }
>> service lmtp {
>>    inet_listener lmtp {
>>      port = 24
>>    }
>> }
>> service pop3-login {
>>    inet_listener pop3 {
>>      port = 0
>>    }
>>    inet_listener pop3s {
>>      port = 0
>>    }
>> }
>> service replicator {
>>    process_min_avail = 1
>>    unix_listener replicator-doveadm {
>>      mode = 0666
>>    }
>> }
>> ssl_cert = </etc/ssl/certificate.pem
>> ssl_key =  # hidden, use -P to show it
>> userdb {
>>    args = /etc/dovecot/userdb.overrides
>>    driver = passwd-file
>> }
>> userdb {
>>    args = /etc/dovecot/ldap.conf
>>    driver = ldap
>> }
>> verbose_proctitle = yes
>> protocol lmtp {
>>    auth_username_format = %n
>>    mail_plugins = " notify replication zlib fts fts_squat sieve"
>> }
>> protocol lda {
>>    mail_plugins = " notify replication zlib fts fts_squat sieve"
>> }
>>
>>
>> And this is /etc/dovecot/ldap.conf (hostnames anonymized):
>>
>> uris = ldaps://ldap1/ ldaps://ldap2/
>> base = dc=domain
>> user_filter = (&(objectClass=posixAccount)(uid=%u))
>> user_attrs = \
>>    =user=%{ldap:uid}, \
>>    =uid=%{ldap:uidNumber}, \
>>    =gid=%{ldap:gidNumber}
>> pass_filter = (&(objectClass=posixAccount)(uid=%u))
>> iterate_filter = 
>> (&(objectClass=posixAccount)(istMailHomeServer=servername))
>> auth_bind = yes
>>
>>
>> /etc/dovecot/userdb.override is currently an empty file.
>>
>>
>>
>> P.S.: Although I do not think, that this has something to do with our
>> problem, I should mention that we run SIS with system uids. This needs
>> some permission and posixacl tweaks on /IMAP/mail/attachments to work:
>>
>> # force all files created in this dir recursively) to have mode 0666
>> setfacl -d -m group::rwx -m o:rwx /IMAP/mail/attachments
>> (you have to enable posixacls for the corresponding filesystem!)
>>
>> # trick dovecot to inherit parent dir's permissions (recursively)
>> chmod 2777 /IMAP/mail/attachments
>>
>>
>> Feel free to add these tweaks to the SIS documentation. ;-)
>>
>> Best Regards,
>>
>
> Best regards,



More information about the dovecot mailing list