Add sync_support for delayed delete mode (master) #4340
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In sync_apply_unmailbox() and sync_apply_unuser(), the call to mboxlist_deletemailbox() is currently independent of whether delete_mode: delayed is configured, creating a risk of data-loss.
Under certain circumstances, in an A<->B two-way replication scenario for high availability, where B may have failed to synchronize a mailbox user/john to A, and A has a user/john mailbox created, the initial A->B "mailbox" replication is refused, but A will promote the synchronization to become of the "user" level, which B appears to accept; it'd remove the existing user/john mailbox, including the file-system hierarchy, resulting in (effectively) data-loss, before recreating the user/john mailbox.
From PR #4337, with @elliefm requesting the PR is rebased against master.