Details
-
Bug
-
Resolution: Fixed
-
Major
-
5.0.0, 6.5.0
Description
When XDCR sends a SetWithMeta request to target, and target local mutation is locked, as of now a KEY_EEXISTS response is sent from target cluster, which gets ignored by XDCR. As a result, the source mutation is never sent to target. This could lead to data loss.
The planned fix is:
1. Set Xerror feature when sending HELO message to target server.
2. Afterward, target server will send back a LOCKED response instead of the previous KEY_EEXISTS response.
3. When XDCR receives the LOCKED response, it will resend the mutation with exponential backoff. Eventually, after the local mutation gets unlocked, the source mutation will be replicated to target and the normal conflict resolution will be applied.