Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-43176

Collection resurrection not accounted for in KV driven mutations

    XMLWordPrintable

Details

    • Triaged
    • 1
    • No
    • KV-Engine Sprint 2020-Dec

    Description

      Some cases with the ADM here. Believe the PDM is fine as everything is driven via DCP. Think that this is also an issue for expiry though.

      Looks like we can do the following:

      • Create collection
      • Create prepare in collection
      • Put prepare in resolvedQ in ADM
      • Drop collection
      • Resurrect collection (same cid but new generation)
      • Commit prepare belonging to old collection to the new one

      Another case:

      • Create collection
      • Create prepare in collection
      • Drop collection
      • Resurrect collection (same cid but new generation)
      • Create prepare in collection (fails as prepare already exists but it should be logically deleted)

      This one is interesting as the failure is temporary (SyncWriteInProgress) and should eventually go away after the collection eraser runs. Resurrection should be a failure case and this could be considered acceptable.

      • Create collection
      • Create prepare in collection
      • Drop collection
      • Resurrect collection (same cid but new generation)
      • Seqno ack old prepare enough to make it eligible for commit

      This case unnecessarily schedules the completion task (but would require locking collections manifest to test if the collection is still valid).

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            ben.huddleston Ben Huddleston
            ben.huddleston Ben Huddleston
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty