Replication weirdness
Daniel Miller
dmiller at amfes.com
Fri Dec 3 22:16:28 UTC 2021
First, I have to say this. After configuring everything correctly - and
that means *everything* correctly - Dovecot replication Just Works. I'm
not sure how (yes I do - Timo & Co. Magic) - but it does. Real-time new
sync is near instantaneous.
Now the problem. Or the background for the problem. My primary server
uses sdbox for primary storage, mdbox for archival storage, and
fts-solr. I spun up a second server, using sdbox, mdbox, and
fts-flatcurve. My namespaces are as defined below. As best I can tell
(based on diff comparing two 'doveconf -n' outputs) my namespaces are
the same on both servers.
namespace archives {
list = children
location = mdbox:/var/mail/%d/%n/Archives/mdbox
mailbox Unsorted {
auto = no
special_use = \Archive
}
prefix = INBOX/Archives/
separator = /
subscriptions = no
type = private
}
namespace inbox {
alias_for =
hidden = no
inbox = yes
list = yes
location =
mailbox "Deleted Messages" {
auto = no
autoexpunge = 30 days
special_use = \Trash
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Trash {
auto = subscribe
autoexpunge = 30 days
special_use = \Trash
}
prefix = INBOX/
separator = /
subscriptions = no
type = private
}
namespace lists {
list = children
location = mdbox:/var/mail/%d/%n/Lists/mdbox
prefix = INBOX/Lists/
separator = /
subscriptions = no
type = private
}
namespace subscriptions {
hidden = yes
list = no
location =
prefix =
separator = /
subscriptions = yes
type = private
}
namespace usershares {
list = yes
location = sdbox:/var/mail/%%d/%%n/sdbox:NO-NOSELECT
prefix = INBOX/shared/%%d/%%n/
separator = /
subscriptions = no
type = shared
}
namespace virtual {
list = children
location = virtual:/var/mail/%d/%n/virtual
mailbox Flagged {
comment = All my flagged messages
special_use = \Flagged
}
prefix = INBOX/virtual/
separator = /
subscriptions = no
}
I also have:
plugin {
mailbox_alias_new = Sent Messages
mailbox_alias_new2 = Sent Items
mailbox_alias_new3 = Deleted Messages
mailbox_alias_old = Sent
mailbox_alias_old2 = Sent
mailbox_alias_old3 = Trash
}
This setup worked fine with my single server. Then I enabled replication
- just on the primary. Dsync went to work (it seemed to take forever for
the initial sync but that's what happens with large mailboxes and slow
internet connections).
The problem came up with certain subfolders. And I believe it only
happens with subfolders that have spaces in their names. I had two
user's mailboxes (under Sent), one of which had a "Sent Messages"
symlink alias for "Sent", that started generating tens or hundreds of
duplicates during sync. Fortunately those subfolders only had a few
mails in them. But I had trees looking like:
[...] (below is under /var/mail/domain/user/sdbox/mailboxes/Sent/)
Proposal
Requests-temp-c6e003375e64a961c93d00009db5accb-temp-1-temp-f80b1a00ce9aa961a86-temp-2
Proposal
Requests-temp-c6e003375e64a961c93d00009db5accb-temp-1-temp-f80b1a00ce9aa961a86-temp-3
Proposal
Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-023fa4271c9ca9611ade0400b88bfabe
Proposal
Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-023fa4271c9ca9611ad-temp-1
Proposal Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-1
Proposal Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-2
Proposal
Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-2-temp-1-temp-1
Proposal Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-3
Proposal Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-4
Proposal Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-5
Proposal
Requests-temp-c6e003375e64a961c93d00009db5accb-temp-2-temp-e2aa0f35c99ba961356500009db5accb
[...]
I kept stopping, cleaning up the folders, and re-starting - and they
kept regenerating. I tried renaming the folders to eliminate the spaces
and I think that helped in one case - for the others I just moved the
folders outside of the mail area completely to let the sync finish.
Now that it's been stable for a day or two - I enabled sync in the other
direction. And after setting *all* the required parameters instead of
just most of them...it's working. But...I'm nervous about moving the
problem folders back over. I will say, if it makes any difference, my
primary server *was* running version 2.3.13 and I just updated it to
2.3.17. The remote is also 2.3.17.
--
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20211203/cae5f992/attachment.htm>
More information about the dovecot
mailing list