Details
-
Bug
-
Resolution: Fixed
-
Major
-
Cheshire-Cat
-
Untriaged
-
1
-
Unknown
Description
Thanks to Hyun-Ju Vega for finding the issue. Her steps are as follows:
Scenario tested:
Configure data with 4gig memory quota.
On cluster a-clus (has one node only):
Load the sample bucket travel-sample (using the UI – settings/samples).On cluster b-clus (has one node only):
Configure data with 4gig memory quota.
Create b-travel-sample bucket, create scope inventory, and in inventory, create collections airline and airport.On cluster a-clus:
Create XDCR remote for b-clus:
Create XDCR replication with source bucket=travel-sample, target bucket on b-clus=b-travel-sample.
Click on button to specify scopes, collections, and mapping.
Click on inventory so that it picks all of inventory’s current and future collections to replicate.
Save replication.After replication starts, make sure that all documents that currently exist in airline and airport have been replicated to target.
Add the missing hotel collection on target and wait until all existing docs from source have replicated to hotel.
Update a doc in hotel on source – check that the update replicated to target – this update is replicated immediately.
Make another update in same hotel doc on source – this update takes a long time to replicate – about 5 min.Add the missing collections route and landmark on target and wait until all docs replicate on those collections.
Now, on source, update 1 doc from each of the 5 collections – airline, airport, hotel, landmark, route.
The airline and airport updates replicate quickly, but the other updates take about 5 minutes.Wait about 5 minutes, then try the same thing again – updating the same doc from each of the 5 collections on source.
Again, the updates on hotel, landmark, route take much longer to replicate to target – about 5 minutes vs immediate for airline and airport updates.
The issue is an incorrect conditional check in XDCR that short circuits the rest of the explicit update logic. This results in the router's broken map not updating correctly.