Replication not working - GUIDs conflict - will be merged later
Patrick Westenberg
pw at wk-serv.de
Sun Jul 31 12:16:21 UTC 2022
Hi everyone,
I have a weird problem with replication that I'm unable to solve.
A new account is sychronized from an external provider via imapsync.
The mails end up on my backend1. I see that the folder structure is
immediately replicated to backend2.
However, a lot of mails are missing and "doveadm replicator status" also
states that something failed:
priority fast sync full sync success sync
failed
mail at example.com none 00:02:36 00:39:47 - y
There are no error log entries regarding this user at all.
After some research I tried to start the replication manually with
"doveadm -D backup -u mail at example.com -d tcp:x.y.z.11" and finally
I got an error message:
Jul 31 13:55:37
doveadm(mail at example.com)<11341><rm1YCblt5mJNLAAAJFg/Tg>: Debug: brain
M: Mailbox INBOX: local=e74590221b6ce6620d29000024583f4e/0/1,
remote=20a9ce2b1c6ce662244e0000baba0ddd/0/1: GUIDs conflict - will be
merged later
As a matter of fact, the mails in the inbox are the ones that are
missing on backend2.
I always end up with this error, no matter what I do:
- I completely removed the folder structure on backend2.
- I removed all database entries.
- I removed this user from the replication, ran imapsync again followed
by "doveadm -D backup ..."
I also removed fts-flatcurve to rule this out as a cause of error.
I have no idea what to do. This configuration worked for months.
I got this error with 2.3.17.1 and 2.3.19.1
Any hints would be highly appreciated.
Regards
Patrick
# 2.3.19.1 (9b53102964): /usr/local/etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.19 (4eae2f79)
auth_master_user_separator = *
auth_mechanisms = plain login
doveadm_password = # hidden, use -P to show it
doveadm_port = 12345
listen = x.y.z.12
lmtp_save_to_detail_mailbox = yes
log_debug = category=fts-flatcurve
log_path = /var/log/dovecot.log
mail_debug = yes
mail_home = /srv/mail/%Ld/%Ln
mail_location = maildir:~/Maildir
mail_plugins = quota notify replication
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 editheader
metric imapc_traffic {
fields = bytes_in bytes_out
filter = event=imap_command_finished
group_by = user
}
namespace inbox {
inbox = yes
location =
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Spamverdacht {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix = INBOX/
separator = /
type = private
}
passdb {
args = /usr/local/etc/dovecot/master-user
driver = passwd-file
master = yes
pass = yes
}
passdb {
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
mail_replica = tcp:x.y.z.11
quota = count:User quota
quota_grace = 25M
quota_rule2 = INBOX/Trash:storage=+100M
quota_status_nouser = DUNNO
quota_status_success = DUNNO
quota_vsizes = yes
quota_warning = storage=100%% quota-full %u
quota_warning2 = storage=95%% quota-warning 95 %u
quota_warning3 = storage=80%% quota-warning 80 %u
quota_warning4 = -storage=100%% quota-ok %u
sieve = ~/.dovecot.sieve
sieve_after = /usr/local/etc/dovecot/sieve/sieve_after.sieve
sieve_default = /usr/local/etc/dovecot/sieve/default.sieve
sieve_dir = ~/sieve
sieve_extensions = +editheader
}
protocols = imap pop3 lmtp sieve
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
}
unix_listener replication-notify {
user = vmail
}
}
service auth {
unix_listener auth-userdb {
group = vmail
mode = 0666
user = vmail
}
}
service config {
unix_listener config {
mode = 0600
user = vmail
}
}
service doveadm {
inet_listener {
port = 12345
}
}
service imap-login {
process_min_avail = 2
service_count = 0
}
service lmtp {
executable = lmtp -L
inet_listener lmtp {
address = x.y.z.12
port = 24
}
process_min_avail = 20
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service quota-full {
executable = script /usr/local/etc/dovecot/quota_full.sh
unix_listener quota-full {
user = vmail
}
user = root
}
service quota-ok {
executable = script /usr/local/etc/dovecot/quota_ok.sh
unix_listener quota-ok {
user = vmail
}
user = root
}
service quota-status {
client_limit = 1
executable = quota-status -p postfix
inet_listener {
port = 12340
}
}
service quota-warning {
executable = script /usr/local/etc/dovecot/quota_warning.sh
unix_listener quota-warning {
user = vmail
}
user = root
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0600
user = vmail
}
}
ssl = required
ssl_cert = </etc/ssl/certs/bundle.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
driver = prefetch
}
userdb {
args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
verbose_proctitle = yes
protocol lmtp {
info_log_path = /var/log/dovecot-lmtp.log
mail_plugins = quota notify replication sieve
}
protocol imap {
mail_max_userip_connections = 40
mail_plugins = quota notify replication imap_quota
}
More information about the dovecot
mailing list