Uploaded image for project: 'Couchbase Lite'
  1. Couchbase Lite
  2. CBL-5307

Updating remote revision when pulling the existing revision

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Beryllium
    • 2.8.4, 3.1.x
    • LiteCore
    • Security Level: Public
    • None
    • 0

    Description

      From CBSE-16093, it could cause the following situation.

      1. A push-pull continuous replicator was started.

      2. Documnet id 'doc100' was created.

      3. The replicator pushed  'doc100' #1-abcdef to SG.

      4. SG saved the revision and will be about to reply the rev message for 'doc100' #1-abcdef.

      5. The replicator was stopped before receiving the reply of the rev message. As a result, the doc100  #1-abcdef didn't get marked as the remote revision.

      6. The document 'doc100' was updated multiple times on the client side and now have rev #4-xyz.

      7. A new push and pull replicator was started.

      8. The puller of the replicator recived doc100' #1-abcdef in the changes message but as #1-abcdef already exists before, #1-abcdef was not pulled. So #1-abcdef didn't get marked as the remote revision.

      9. The pusher of the replicator proposed doc100' #4-xyz but without remote revision id set (no ancesctor), the SG replied back as conflict. See example log below.

      19:50:51.245766| [Sync]: {Pusher#158} Proposed rev 'doc100' #4-xyz (ancestor ) conflicts with newer server revision
      19:50:51.246058| [Sync]: {Pusher#158} Will try again if remote rev of 'doc100' is updated

      With all of those steps, the point that is being made here is that the puller should also mark rev 1-abcdef as a remote revision as well. So any subsequence push can use that to indicate it ancestor.

       

      Attachments

        Issue Links

          Activity

            People

              The Lite The Lite
              pasin Pasin Suriyentrakorn
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                PagerDuty