dsync replication issues with shared mailboxes
Sergey Schwartz
sergey.schwartz at bgoperator.com
Mon Jun 15 14:00:08 UTC 2015
Gentlemen,
I've setup 2 servers with dsync replication and hit a serious issue -
some messages got duplicated thousands times in some shared mailboxes(~5).
There is actually no reason to replicate anything from shared name space
and I've tried to limit replication scope with just 'inbox' name space
but it didn't help.
dovecot version ||2.2.18 (2de3c7248922)
errors in the logs
May 26 13:23:38 mx10 dovecot: doveadm: Error:
dsync-remote(korobova at mydomain): Error: Mailbox turkey: Save commit
failed: Message has been copied too many times (24498 + 8270)
May 26 13:25:16 mx10 dovecot: doveadm: Error:
dsync-remote(korobova at mydomain): Error: Mailbox turkey: Save commit
failed: Message has been copied too many times (24498 + 8270)
May 26 13:26:40 mx10 dovecot: dsync-local(zhelonkina at mydomain): Error:
Mailbox booking: Save commit failed: Message has been copied too many
times (0 + 32768)
May 26 13:30:01 mx10 dovecot: dsync-local(kashchits at mydomain): Error:
Mailbox shared/davydjanc at mydomain/russia: Save commit failed: Message
has been copied too many times (17139 + 15629)
May 26 13:30:01 mx10 dovecot: dsync-local(davydjanc at mydomain): Error:
Mailbox russia: Save commit failed: Message has been copied too many
times (17139 + 15629)
May 26 13:30:01 mx10 dovecot: dsync-local(kapitanova at mydomain): Error:
Mailbox shared/davydjanc at mydomain/russia: Save commit failed: Message
has been copied too many times (17139 + 15629)
May 26 13:30:03 mx10 dovecot: dsync-local(grinenko at mydomain): Error:
Mailbox shared/davydjanc at mydomain/russia: Save commit failed: Message
has been copied too many times (17139 + 15629)
May 26 13:30:03 mx10 dovecot: dsync-local(maslova at mydomain): Error:
Mailbox shared/davydjanc at mydomain/russia: Save commit failed: Message
has been copied too many times (17139 + 15629)
Data was not lost and I've been able to run deduplicate for most of
mailboxes, but one mailbox got broken and I had to manually move message
to another mailbox
force-resync failed fot that mailbox
doveadm(l.davydjanc at mydomain): Error: mdbox map
/srv/vmail/current/mydomain/davydjanc/storage/dovecot.map.index
corrupted: map_uid=361735 refcount too low
Hope you guys have an idea how to work it around :)
replication.conf
dsync_remote_cmd = /usr/bin/ssh -i /home/vmail/.ssh/id_rsa -l %{login}
%{host} doveadm dsync-server -u %u
service aggregator {
fifo_listener replication-notify-fifo {
user = vmail
mode = 0600
}
unix_listener replication-notify {
user = vmail
mode = 0600
}
process_min_avail = 1
}
service replicator {
unix_listener replicator-doveadm {
user = vmail
mode = 0600
}
process_min_avail = 1
}
service doveadm {
user = vmail
process_min_avail = 1
}
service config {
unix_listener config {
user = vmail
}
process_min_avail = 1
}
replication_max_conns = 50
replication_dsync_parameters = -d -n inbox -l 30 -U
plugin {
mail_replica = remote:vmail at mx20
}
doveconf -n
# 2.2.18 (2de3c7248922): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.8
# OS: Linux 3.13.0-34-generic x86_64 Ubuntu 14.04.2 LTS xfs
auth_cache_negative_ttl = 0
auth_cache_size = 512 M
auth_default_realm = mydomain
auth_failure_delay = 5 secs
auth_worker_max_count = 4096
default_client_limit = 40960
default_process_limit = 8192
default_vsz_limit = 2 G
disable_plaintext_auth = no
first_valid_gid = 500
mail_location = mdbox:/srv/vmail/current/%d/%n
mail_plugins = acl zlib notify replication
mail_shared_explicit_inbox = yes
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
mdbox_rotate_size = 32 M
namespace {
list = yes
location = mdbox:/srv/vmail/current/%%d/%%n
prefix = shared/%%u/
separator = /
subscriptions = no
type = shared
}
namespace inbox {
inbox = yes
location =
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix =
separator = /
}
passdb {
args = /etc/dovecot/virtual/base.conf.ext
driver = sql
}
passdb {
args = /etc/dovecot/virtual/master.conf.ext
driver = sql
}
plugin {
acl = vfile
acl_shared_dict =
file:/srv/vmail/current/shared.db/000-shared-mailboxes.db
sieve =
file:/srv/vmail/current/%d/%n/sieve;active=/srv/vmail/current/%d/%n/active.sieve
sieve_max_redirects = 0
zlib_save = xz
zlib_save_level = 6
}
protocols = " imap lmtp sieve"
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
}
service imap-login {
process_min_avail = 24
}
service imap {
process_limit = 4096
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}
ssl_cert = </etc/ssl/mxbgcom/2015/mydomain.com.crt.chained
ssl_key = </etc/ssl/mxbgcom/2015/mydomain.com.key
syslog_facility = local0
userdb {
args = /etc/dovecot/virtual/base.conf.ext
driver = sql
}
protocol lmtp {
mail_plugins = acl zlib notify replication sieve
}
protocol imap {
mail_max_userip_connections = 15
mail_plugins = acl zlib notify replication imap_acl
}
--
Best regards,
Sergey Schwartz
Senior System Administrator
Biblio Globus Tour Operator
www.bgoperator.ru
T: +7 495 5042500 ext 1532
E: sergey.schwartz at bgoperator.com
More information about the dovecot
mailing list