replication and notify

Vitali Quiering v.quiering at me.com
Mon Jul 3 22:56:27 EEST 2017


Hello,

we are using dovecot 2.2.13 on debian jessie from default repositories in multiple two node replication cluster. For another cluster I was trying to set this up on debian stretch with current dovecot 2.2.27.
It seemed that notifiy was not working at all. Running replicate manually did work though.
I found several mailing list questions regarding this issue. It looks like there is some locking issue with maildir storage engine or notifying the replicator might not work. Tried to setup sdbox without any improvements.

In version 2.2.31 there is a change in the changelog:
- imap: NOTIFY command has been almost completely broken since the beginning. I guess nobody has been trying to use it.

Question 1: Is this change regarding the notify process that notifies the replicator?
Question 2: When will this version be available on dovecot stretch-auto repository? I installed sid version to test.
Question 3: What else can I do to make replication work?

Thanks,
Vitali

Config:
> # OS: Linux 4.9.0-3-amd64 x86_64 Debian 9.0 ext4
> auth_mechanisms = plain login
> default_internal_user = vmail
> doveadm_password =  # hidden, use -P to show it
> doveadm_port = 12345
> dsync_remote_cmd = ssh -l%{login} %{host} doveadm dsync-server -u%u
> info_log_path = /var/log/dovecot/dovecot-info.log
> log_path = /var/log/dovecot/dovecot.log
> log_timestamp = "%Y-%m-%d %H:%M:%S "
> mail_debug = no
> mail_location = maildir:/var/vmail/%d/%n
> mail_plugins = " notify replication"
> mail_privileged_group = vmail
> 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/dovecot-sql.conf
>   driver = sql
> }
> plugin {
>   mail_replica = tcp:mx02.example.com
>   replication_full_sync_interval = 24 hour
>   sieve = /var/vmail/%d/%n/.dovecot.sieve
>   sieve_dir = /var/vmail/%d/%n/
>   sieve_storage = /var/vmail/%d/%n/sieve/
> }
> protocols = " imap pop3"
> service aggregator {
>   fifo_listener replication-notify-fifo {
>     mode = 0666
>     user = vmail
>   }
>   unix_listener replication-notify {
>     mode = 0666
>     user = vmail
>   }
> }
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     group = postfix
>     mode = 0666
>     user = postfix
>   }
>   unix_listener auth-master {
>     mode = 0600
>     user = vmail
>   }
>   user = root
> }
> service doveadm {
>   inet_listener {
>     port = 12345
>   }
> }
> service imap-login {
>   inet_listener imap {
>     port = 143
>   }
>   inet_listener imaps {
>     port = 993
>     ssl = yes
>   }
>   process_min_avail = 1
> }
> service pop3-login {
>   inet_listener pop3 {
>     port = 110
>   }
>   inet_listener pop3s {
>     port = 995
>     ssl = yes
>   }
> }
> service replicator {
>   process_min_avail = 1
>   unix_listener replicator-doveadm {
>     mode = 0666
>   }
> }
> ssl = required
> ssl_cert = </etc/ssl/certs/cert.crt
> ssl_cipher_list = HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
> ssl_key =  # hidden, use -P to show it
> userdb {
>   args = /etc/dovecot/dovecot-sql.conf
>   driver = sql
> }
> protocol lda {
>   auth_socket_path = /var/run/dovecot/auth-userdb
>   log_path = /var/log/dovecot/dovecot-deliver.log
>   mail_plugins = " notify replication sieve"
>   postmaster_address = postmaster at example.com
> }
> protocol pop3 {
>   pop3_uidl_format = %08Xu%08Xv
> }

Log from mx01:
> 2017-07-03 21:50:54 imap-login: Info: Login: user=<user at example.com>, method=PLAIN, rip=1.2.3.4, lip=172.31.1.100, mpid=9584, TLS, session=<JhSzFW9TxO3VPWNi>
> 2017-07-03 21:50:54 imap(user): Debug: Loading modules from directory: /usr/lib/dovecot/modules
> 2017-07-03 21:50:54 imap(user): Debug: Module loaded: /usr/lib/dovecot/modules/lib15_notify_plugin.so
> 2017-07-03 21:50:54 imap(user): Debug: Module loaded: /usr/lib/dovecot/modules/lib20_replication_plugin.so
> 2017-07-03 21:50:54 imap(user): Debug: Added userdb setting: mail=maildir:/var/vmail/example.com/user
> 2017-07-03 21:50:54 imap(user): Debug: Effective uid=5000, gid=5000, home=/var/vmail/example.com/user
> 2017-07-03 21:50:54 imap(user): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/var/vmail/example.com/user
> 2017-07-03 21:50:54 imap(user): Debug: maildir++: root=/var/vmail/example.com/user, index=, indexpvt=, control=, inbox=/var/vmail/example.com/user, alt=
> 2017-07-03 21:50:54 imap(user): Debug: INBOX: Mailbox opened because: SELECT
> 2017-07-03 21:50:54 imap(user): Debug: Deleted Messages: Mailbox opened because: STATUS
> 2017-07-03 21:50:54 imap-login: Info: Login: user=<user at example.com>, method=PLAIN, rip=1.2.3.4, lip=172.31.1.100, mpid=9586, TLS, session=<HvO9FW9Txu3VPWNi>
> 2017-07-03 21:50:54 imap(user): Debug: Loading modules from directory: /usr/lib/dovecot/modules
> 2017-07-03 21:50:54 imap(user): Debug: Module loaded: /usr/lib/dovecot/modules/lib15_notify_plugin.so
> 2017-07-03 21:50:54 imap(user): Debug: Module loaded: /usr/lib/dovecot/modules/lib20_replication_plugin.so
> 2017-07-03 21:50:54 imap(user): Debug: Added userdb setting: mail=maildir:/var/vmail/example.com/user
> 2017-07-03 21:50:54 imap(user): Debug: Effective uid=5000, gid=5000, home=/var/vmail/example.com/user
> 2017-07-03 21:50:54 imap(user): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/var/vmail/example.com/user
> 2017-07-03 21:50:54 imap(user): Debug: maildir++: root=/var/vmail/example.com/user, index=, indexpvt=, control=, inbox=/var/vmail/example.com/user, alt=
> 2017-07-03 21:50:54 imap(user): Debug: Deleted Messages: Mailbox opened because: SELECT
> 2017-07-03 21:50:55 imap(user): Debug: Mailbox Deleted Messages: Opened mail UID=4 because: 10/17 headers not cached (first=CC) (Mail has other cached fields, reset_id=1498996658)
> 2017-07-03 21:50:55 imap(user): Debug: replication: Replication requested by 'transaction commit', priority=1
> 2017-07-03 21:50:55 imap(user): Debug: Deleted Messages: Mailbox opened because: STATUS
> 2017-07-03 21:50:55 doveadm(user): Debug: auth PASS input:
> 2017-07-03 21:50:55 doveadm(user): Debug: auth USER input:
> 2017-07-03 21:50:57 imap(user): Debug: Deleted Messages: Mailbox opened because: STATUS
> 2017-07-03 21:51:01 imap(user): Debug: replication: Replication requested by 'transaction commit', priority=2
> 2017-07-03 21:51:02 doveadm(user): Debug: auth PASS input:
> 2017-07-03 21:51:02 doveadm(user): Debug: auth USER input:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP
URL: <http://dovecot.org/pipermail/dovecot/attachments/20170703/c5caf306/attachment.sig>


More information about the dovecot mailing list