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
Dana 05.09.2022 12:15, Silvio Siefke je napisao(la):
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)