[Dovecot] dsync deleted my mailbox - what did I do wrong?

Nikolaos Milas nmilas at noa.gr
Tue Apr 8 12:00:02 UTC 2014


On 8/4/2014 12:38 μμ, Teemu Huovila wrote:

> 3) dsync replication / doveadm sync not working as expected.
> These came in pretty late in the thread and I did not get a full picture of what kind of setups and parameters were used. I
> suspect these might be a configuration issue. I think trying with different configurations and going through the documentation,
> such as it is, once more, is your best bet. Use -D and -v to make dsync more verbose, so you do not miss any error messages.

Thank you for the reply; I am focusing on the 3rd part, since this is 
the one I can provide feedback about.

My current configuration is exactly as suggested on the wiki2 and I list 
it below for your reference.

Neither using replication nor using dsync from CLI leads to subfolders 
getting replicated, as I have explained. As an example, if a user 
creates subfolder "boxtest" e.g. under Inbox on either side, it never 
gets created on the other side.

Running dsync with -Dv does not reveal any errors.

For example, here is the output of command:

     # dsync -fDv -u imaptester mirror ssh -l root vmail1.example.com 
dsync -u imaptester

Mailbox "boxtest" under Inbox (on vmail server) -containing one message- 
should get replicated (created) on vmail1 server, but it does not.

If you can spot anything that can help on tracing the problem, please help.

Otherwise, I can't see what is causing the erratic replication.

Thanks,
Nick

*****************************************************************************
...
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=mailbox send_state=mailbox
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=mailbox send_state=mailbox changed=0
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=0
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=mailbox send_state=mailbox
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=attributes send_state=changes changed=1
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=1
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=attributes send_state=changes
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=changes send_state=mail_requests changed=1
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=1
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=changes send_state=mail_requests
dsync-local(imaptester): Debug: brain M: Import INBOX.boxtest: Import 
change GUID=1396119018.M550517P3113.vmail.example.com,S=1169,W=1194 
UID=1 hdr_hash=
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=changes send_state=mail_requests changed=1
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=1
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=changes send_state=mail_requests
dsync-local(imaptester): Debug: brain M: Import INBOX.boxtest: Last 
common UID=1
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=mail_requests send_state=mails changed=1
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=1
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=mail_requests send_state=mails
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=mail_requests send_state=mails changed=0
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=0
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=mail_requests send_state=mails
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=mails send_state=done changed=1
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=1
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=mails send_state=done
dsync-local(imaptester): Debug: brain M: Import INBOX.boxtest: Saved UIDs:
dsync-local(imaptester): Debug: brain M: Import INBOX.boxtest: Finish 
update: min_next_uid=2 min_first_recent_uid=2 min_highest_modseq=2 
min_highest_pvt_modseq=0
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=recv_last_common send_state=done changed=1
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=1
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=recv_last_common send_state=done
dsync-local(imaptester): Debug: brain M: out box 'INBOX.boxtest' 
recv_state=recv_last_common send_state=done changed=0
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=0
dsync-local(imaptester): Debug: brain M: in state=sync_mails
dsync-local(imaptester): Debug: brain M: in box 'INBOX.boxtest' 
recv_state=recv_last_common send_state=done
dsync-local(imaptester): Debug: brain M: out box '' 
recv_state=recv_last_common send_state=done changed=1
dsync-local(imaptester): Debug: brain M: out state=master_send_mailbox 
changed=1
dsync-local(imaptester): Debug: brain M: in state=master_send_mailbox
dsync-local(imaptester): Debug: brain M: out state=sync_mails changed=1
dsync-local(imaptester): Debug: brain M: in state=sync_mails
...
*****************************************************************************

============================  Configuration file 
============================

# cat /etc/dovecot/dovecot.conf
# 2.2.12: dovecot.conf

protocols = imap pop3

login_greeting = EXAMPLE.COM POP/IMAP Srv XAPITI XPICTOY

mail_location = maildir:~/Maildir/
mail_gid = 500
mail_uid = 500

auth_mechanisms = plain login
auth_username_format = %Lu

auth_verbose = yes
auth_debug = no

disable_plaintext_auth = no

mail_plugins = quota notify replication

protocol imap {
   imap_client_workarounds = "delay-newmail"
   mail_plugins = quota imap_quota notify replication
}

protocol pop3 {
   mail_max_userip_connections = 3
   mail_plugins = quota notify replication
   pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
   pop3_uidl_format = %08Xu%08Xv
}

protocol lda {
   auth_socket_path = /var/run/dovecot/auth-master
   info_log_path =
   log_path =
   mail_plugins = quota notify replication
   postmaster_address = sysadmin at example.com
   sendmail_path = /usr/lib/sendmail
}

userdb {
   args = /etc/dovecot/dovecot-usrdb-ldap.conf
   driver = ldap
}

passdb {
   args = /etc/dovecot/dovecot-passdb-ldap.conf
   driver = ldap
}

dsync_remote_cmd = ssh -l root vmail1.example.com doveadm dsync-server -u%u

replication_dsync_parameters = -d -N -l 30 -U

plugin {
   mail_replica = remote:vmail at vmail1.example.com
}

plugin {
   quota = maildir:User quota
   quota_rule = *:storage=4G
   quota_rule2 = Trash:storage=+3%%
   quota_warning = storage=75%% quota-warning 75 %u
   quota_warning2 = storage=90%% quota-warning 90 %u
}

service quota-warning {
   executable = script /opt/mail1.sh
   user = vmail
   unix_listener quota-warning {
     user = vmail
   }
}

service aggregator {
   fifo_listener replication-notify-fifo {
     user = vmail
   }
   unix_listener replication-notify {
     user = vmail
   }
}

service replicator {
    unix_listener replicator-doveadm {
      mode = 0600
    }
}

service auth {
   unix_listener /var/spool/postfix/private/auth {
     group = postfix
     mode = 0660
     user = postfix
   }
   unix_listener auth-master {
     group = vmail
     mode = 0660
     user = vmail
   }
   user = root
}

service imap-login {
   service_count = 1
   vsz_limit = 64 M
}

service pop3-login {
   service_count = 1
   vsz_limit = 64 M
}

service replicator {
   process_min_avail = 1
}

ssl_ca = </etc/pki/tls/certs/chain-1552.pem
ssl_cert = </etc/pki/tls/certs/cert-1552.pem
ssl_key = </etc/pki/tls/private/key-1552.pem

syslog_facility = local1

================================================================================



More information about the dovecot mailing list