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

Value eviction bucket - Replication of deletes with XATTRS will fail if return EWOULD_BLOCK

    XMLWordPrintable

Details

    • Triaged
    • 1
    • Yes

    Description

      Problem

      As described in CBSE-8828, for a replica DCP stream. If a previous item that uses XATTRs is to be deleted, however it is not resident - then we must perform a bgfetch - see MB-36087. When the bgfetch is complete we replay PassiveStream::messageReceived. However this time it fails because the last seqno now equals the sequence number of the deletion and so it is discarded.

      Suggested Possible Solution

      • only set the last seqno to the seqno of the message just received, once the message has been completed or
      • If an EWOULD_BLOCK occurs reserve the setting of the last seqno so the message can be received again.

      Attachments

        1. image001.png
          90 kB
        2. image001.png
          90 kB
        3. image001.png
          90 kB

        Issue Links

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

          Activity

            Build couchbase-server-6.6.2-9411 contains kv_engine commit 5958386 with commit message:
            [BP] MB-41255: Don't bgfetch for a replica delete of an xattr

            build-team Couchbase Build Team added a comment - Build couchbase-server-6.6.2-9411 contains kv_engine commit 5958386 with commit message: [BP] MB-41255 : Don't bgfetch for a replica delete of an xattr

            Build couchbase-server-7.0.0-4255 contains kv_engine commit c690fba with commit message:
            Merge "MB-41255: Merge branch '6.5.2' into mad-hatter" into mad-hatter

            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-4255 contains kv_engine commit c690fba with commit message: Merge " MB-41255 : Merge branch '6.5.2' into mad-hatter" into mad-hatter

            Build couchbase-server-7.0.0-4255 contains kv_engine commit d88694a with commit message:
            MB-41255: Merge branch '6.5.2' into mad-hatter

            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-4255 contains kv_engine commit d88694a with commit message: MB-41255 : Merge branch '6.5.2' into mad-hatter

            Build couchbase-server-7.0.0-4255 contains kv_engine commit 5958386 with commit message:
            [BP] MB-41255: Don't bgfetch for a replica delete of an xattr

            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-4255 contains kv_engine commit 5958386 with commit message: [BP] MB-41255 : Don't bgfetch for a replica delete of an xattr

            Thanks Dave Rigby.

            Depends on how you define "regression" . I believe the issue was introduced with XATTR support; when replicating deletes to items which previously had XATTRs in them. To hit this issue you need to be using XATTRs, which were new in 5.0.0 - so while it's true we didn't encounter this issue prior to v5, you also need to be using the new v5 feature to hit it.

            Customer was upgrading from 6.0 to 6.6. Given that the fix was backported to 6.0.5 also, looks like the issue existed in 6.0.x as well. Likely that the customer was not using XATTRs and their previous upgrades (to 6.0.x) were hence not impacted. So yes, probably not a regression.

            shivani.gupta Shivani Gupta added a comment - Thanks Dave Rigby . Depends on how you define "regression"  . I believe the issue was introduced with XATTR support; when replicating deletes to items which previously had XATTRs in them. To hit this issue you need to be using XATTRs, which were new in 5.0.0 - so while it's true we didn't encounter this issue prior to v5, you also need to be using the new v5 feature to hit it. Customer was upgrading from 6.0 to 6.6. Given that the fix was backported to 6.0.5 also, looks like the issue existed in 6.0.x as well. Likely that the customer was not using XATTRs and their previous upgrades (to 6.0.x) were hence not impacted. So yes, probably not a regression.

            People

              ashwin.govindarajulu Ashwin Govindarajulu
              owend Daniel Owen
              Votes:
              0 Vote for this issue
              Watchers:
              17 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                PagerDuty