Make file 90-replication.com on primary and secudary mail server laik in example (change ip - or put hostname and password)
# Create 90-replication.conf
nano /etc/dovecot/conf.d/90-replication.conf
plugin {
mail_replica = tcp:ip:12345
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0600
user = vmail
}
}
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
group = vmail
mode = 0666
}
unix_listener replication-notify {
user = vmail
group = vmail
mode = 0666
}
}
service doveadm {
inet_listener {
port = 12345
ssl = no
}
}
doveadm_password = YourPassword
Hello,
I try the replication of two Dovecot servers, but some errors always
appear. Maybe someone here has an idea what's going wrong.
As an MTA I use OpenSMTPD.
Thank You
Silvio
dovecot -n on MX 1
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 5.10.0-16-amd64 x86_64 Debian 11.4
# Hostname: asia.sisi-systems.ovh
auth_mechanisms = plain login
doveadm_password = # hidden, use -P to show it
doveadm_port = 20000
mail_gid = vmail
mail_location = maildir:~/Maildir
mail_plugins = " notify replication"
mail_privileged_group = vmail
mail_uid = vmail
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 imapsieve vnd.dovecot.imapsieve
namespace inbox {
inbox = yes
location =
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
}
passdb {
args = scheme=SHA512-CRYPT username_format=%u /etc/dovecot/users
driver = passwd-file
}
plugin {
imapsieve_mailbox1_before = file:/var/vmail/sieve/global/learn-spam.sieve
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_name = Spam
imapsieve_mailbox2_before = file:/var/vmail/sieve/global/learn-ham.sieve
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_from = Spam
imapsieve_mailbox2_name = *
mail_replica = tcp:192.168.1.112
quota = maildir:User quota
quota_exceeded_message = Benutzer %u hat das Speichervolumen überschritten. / User %u has exhausted allowed storage space.
replication_sync_timeout = 2
sieve = file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve
sieve_before = /var/vmail/sieve/global/spam-global.sieve
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = lmtp imap pop3 sieve
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
}
unix_listener replication-notify {
user = vmail
}
}
service doveadm {
inet_listener {
port = 20000
}
}
service imap-login {
inet_listener imap {
port = 143
}
}
service lmtp {
unix_listener lmtp {
group = vmail
user = vmail
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
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 = 0600
user = vmail
}
}
ssl = required
ssl_cert = </etc/lego/certificates/imap.sisi-systems.ovh.crt
ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
userdb {
args = username_format=%u /etc/dovecot/users
driver = passwd-file
override_fields = uid=vmail gid=vmail home=/home/vmail/%d/%n
}
protocol imap {
imap_idle_notify_interval = 29 mins
mail_max_userip_connections = 20
mail_plugins = " notify replication quota imap_quota imap_sieve"
}
protocol lmtp {
mail_plugins = " notify replication sieve notify push_notification"
postmaster_address = network@sisi-systems.ovh
}
protocol pop3 {
mail_max_userip_connections = 10
mail_plugins = " notify replication"
}
dovecot -n on MX 2
# 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.13 (cdd19fe3)
# OS: Linux 5.10.0-15-amd64 x86_64 Debian 11.4
# Hostname: bulgaria.sisi-systems.ovh
auth_mechanisms = plain login
doveadm_password = # hidden, use -P to show it
doveadm_port = 20000
mail_gid = vmail
mail_location = maildir:~/Maildir
mail_plugins = " notify replication"
mail_privileged_group = vmail
mail_uid = vmail
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 imapsieve vnd.dovecot.imapsieve
namespace inbox {
inbox = yes
location =
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
}
passdb {
args = scheme=SHA512-CRYPT username_format=%u /etc/dovecot/users
driver = passwd-file
}
plugin {
imapsieve_mailbox1_before = file:/var/vmail/sieve/global/learn-spam.sieve
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_name = Spam
imapsieve_mailbox2_before = file:/var/vmail/sieve/global/learn-ham.sieve
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_from = Spam
imapsieve_mailbox2_name = *
mail_replica = tcp:192.168.1.102
quota = maildir:User quota
quota_exceeded_message = Benutzer %u hat das Speichervolumen überschritten. / User %u has exhausted allowed storage space.
replication_sync_timeout = 2
sieve = file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve
sieve_before = /var/vmail/sieve/global/spam-global.sieve
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve-pipe
sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = lmtp imap pop3 sieve
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
}
unix_listener replication-notify {
user = vmail
}
}
service doveadm {
inet_listener {
port = 20000
}
}
service imap-login {
inet_listener imap {
port = 143
}
}
service lmtp {
unix_listener lmtp {
group = vmail
user = vmail
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
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 = 0600
user = vmail
}
}
ssl = required
ssl_cert = </etc/lego/certificates/imap.sisi-systems.ovh.crt
ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_min_protocol = TLSv1.2
userdb {
args = username_format=%u /etc/dovecot/users
driver = passwd-file
override_fields = uid=vmail gid=vmail home=/home/vmail/%d/%n
}
protocol imap {
imap_idle_notify_interval = 29 mins
mail_max_userip_connections = 20
mail_plugins = " notify replication quota imap_quota imap_sieve"
}
protocol lmtp {
mail_plugins = " notify replication sieve notify push_notification"
postmaster_address = network@sisi-systems.ovh
}
protocol pop3 {
mail_max_userip_connections = 10
mail_plugins = " notify replication"
}
Log MX 1 (asia)
Sep 5 18:02:12 asia dovecot: replicator: Fatal: master: service(replicator): child 706077 killed with signal 6 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps)
Sep 5 18:02:18 asia dovecot: replicator: Panic: data stack: Out of memory when allocating 268435496 bytes
Sep 5 18:02:18 asia dovecot: replicator: Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f27434e84e2] -> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f27434e85fe] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc49b) [0x7f27434f449b] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc531) [0x7f27434f4531] -> /usr/lib/dovecot/libdovecot.so.0(+0x53aee) [0x7f274344baee] -> /usr/lib/dovecot/libdovecot.so.0(+0x53435) [0x7f274344b435] -> /usr/lib/dovecot/libdovecot.so.0(+0xf5d88) [0x7f27434edd88] -> /usr/lib/dovecot/libdovecot.so.0(+0x11b818) [0x7f2743513818] -> /usr/lib/dovecot/libdovecot.so.0(+0xf25f2) [0x7f27434ea5f2] -> /usr/lib/dovecot/libdovecot.so.0(+0xf26a9) [0x7f27434ea6a9] -> /usr/lib/dovecot/libdovecot.so.0(buffer_write+0x1e) [0x7f27434ea8be] -> dovecot/replicator(replicator_queue_push+0x14a) [0x5633c8c4eb1a] -> dovecot/replicator(+0x5296) [0x5633c8c4e296] -> dovecot/replicator(+0x493e) [0x5633c8c4d93e] -> dovecot/replicator(+0x4b1c) [0x5633c8c4db1c] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7f2743509f59] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x132) [0x7f274350b592] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7f274350a000] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) [0x7f274350a1c0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f27434804e3] -> dovecot/replicator(main+0x18d) [0x5633c8c4ccad] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7f2743254d0a] -> dovecot/replicator(_start+0x2a) [0x5633c8c4cd6a]
Sep 5 18:02:18 asia dovecot: replicator: Fatal: master: service(replicator): child 706082 killed with signal 6 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps)
Log MX 2 (bulgaria)
Sep 5 13:02:05 bulgaria dovecot: replicator: Panic: data stack: Out of memory when allocating 268435496 bytes
Sep 5 13:02:05 bulgaria dovecot: replicator: Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0(backtrace_append+0x42) [0x7f813fa394e2] -> /usr/lib/dovecot/libdovecot.so.0(backtrace_get+0x1e) [0x7f813fa395fe] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc49b) [0x7f813fa4549b] -> /usr/lib/dovecot/libdovecot.so.0(+0xfc531) [0x7f813fa45531] -> /usr/lib/dovecot/libdovecot.so.0(+0x53aee) [0x7f813f99caee] -> /usr/lib/dovecot/libdovecot.so.0(+0x53435) [0x7f813f99c435] -> /usr/lib/dovecot/libdovecot.so.0(+0xf5d88) [0x7f813fa3ed88] -> /usr/lib/dovecot/libdovecot.so.0(+0x11b818) [0x7f813fa64818] -> /usr/lib/dovecot/libdovecot.so.0(+0xf25f2) [0x7f813fa3b5f2] -> /usr/lib/dovecot/libdovecot.so.0(+0xf26a9) [0x7f813fa3b6a9] -> /usr/lib/dovecot/libdovecot.so.0(buffer_write+0x1e) [0x7f813fa3b8be] -> dovecot/replicator(replicator_queue_push+0x14a) [0x5646d37c5b1a] -> dovecot/replicator(+0x5296) [0x5646d37c5296] -> dovecot/replicator(+0x493e) [0x5646d37c493e] -> dovecot/replicator(+0x4b1c) [0x5646d37c4b1c] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69) [0x7f813fa5af59] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x132) [0x7f813fa5c592] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x50) [0x7f813fa5b000] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x40) [0x7f813fa5b1c0] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13) [0x7f813f9d14e3] -> dovecot/replicator(main+0x18d) [0x5646d37c3cad] -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea) [0x7f813f7a5d0a] -> dovecot/replicator(_start+0x2a) [0x5646d37c3d6a]
Sep 5 13:02:05 bulgaria dovecot: replicator: Fatal: master: service(replicator): child 144867 killed with signal 6 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps)