master - master syncronization: *-temp-1-temp-1-temp-2-* recursion
Hi,
I'm using dovecot 2.3.4.1 (f79e8e7e4) (Debian Build) and doing master/master replication.
Recently we added a huuge .Archive* folder structure to the items being replicated. And now, suddenly we see new folders with a naming like *-temp-1-temp-1-temp-2-* appearing.
This finally lead to infinite recursion until the replicator crashed. I've a theory, but please see below (**) for influence from outside of dovecot:
SiteA starts replication of a huge .Archive folder, which doesn't exist on siteB yet
A B
.Archive ----> .Archive-temp-1
Because it takes ages to sync, the replicator on siteB now sees the new .Archive-temp-1 folder and starts replicating this back to siteA
.Archive-temp-1-temp-1 <----- .Archive-temp-1
If now the replicator on siteA hits that new folder, it starts replicating it to site B
.Archive-temp-1-temp-1 ----> .Archive-temp-1-temp-1-temp-2
… and so on. Sometimes the digit is "2", or even "3".
I didn't check the Dovecot source yet, if the Replicator fails to skip the temporary folders it gets "injected" from the other side.
(**) Possible external influence: On siteA a cronjob once per day moves the .Archive* folders to another filesystem and replaces the .Archive* directory with a symlink. This script "touches" the dovecot-uidlist.lock prior to its action (but doesn't check if there is already a lock).
Could this mailbox move *behind* the back of the replicator be a reason for the odd behaviour?
Additional info:
On *both* nodes the config looks like this:
doveadm_password = <password>
service doveadm {
inet_listener {
port = 9090
ssl = yes
}
}
replication_max_conns = 16
plugin {
mail_replica = tcps:<other site>:9090
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0666
user = dovecot
}
}
service aggregator {
fifo_listener replication-notify-fifo {
mode = 0666
user = dovecot
}
unix_listener replication-notify {
mode = 0666
user = dovecot
}
}
participants (1)
-
Heiko Schlittermann