master - master syncronization: *-temp-1-temp-1-temp-2-* recursion
    Heiko Schlittermann 
    hs at schlittermann.de
       
    Mon Jul  5 14:46:39 EEST 2021
    
    
  
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
      }
    }
    
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <https://dovecot.org/pipermail/dovecot/attachments/20210705/34f0df8f/attachment.sig>
    
    
More information about the dovecot
mailing list