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

DcpProducer::handleResponse() doesn't handle all valid error codes for Prepare, Commit and abort

    XMLWordPrintable

Details

    • Untriaged
    • Unknown
    • KV Sprint 2020-June

    Description

      Currently a DCP consumer can return the status codes bellow for a Prepare, Commit and abort. However, we don't handle of these status codes in an explicit manor and thus sometimes handle them incorrectly. This should be fixed to ensure we don't end up in situations like rebalance hang e.g. MB-36971 and MB-36794.
      (A status marked as [x] is a handled status code and [ ] for unhandled explicitly)
      DCP Prepare:

      • [ ] ENGINE_E2BIG
      • [ ] ENGINE_EWOULDBLOCK
        // Don’t think we would see from a consumer
      • [ ] ENGINE_LOCKED
      • [ ] ENGINE_SYNC_WRITE_IN_PROGRESS
      • [ ] ENGINE_KEY_EEXISTS
      • [ ] ENGINE_UNKNOWN_COLLECTION

      DCP Commit:
      See common

      DCP Abort:
      See common

      Common between all three ops:

      • [x] ENGINE_SUCCESS
      • [x] ENGINE_DISCONNECT
      • [x] ENGINE_EINVAL (disconnect for all ops)
      • [x] ENGINE_KEY_ENOENT (we don't disconnect for prepare and should only be ever sent by an active)
      • [ ] ENGINE_NOT_MY_VBUCKET
      • [ ] ENGINE_TMPFAIL
      • [ ] ENGINE_ENOMEM
      • [ ] ENGINE_ERANGE

      Attachments

        Issue Links

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

          Activity

            Marking resolved as all patches are now in mad-hatter branch for 6.6.0

            richard.demellow Richard deMellow added a comment - Marking resolved as all patches are now in mad-hatter branch for 6.6.0

            Build couchbase-server-6.6.0-7789 contains kv_engine commit 36134ec with commit message:
            MB-37009: DcpProducer::handleResponse, don't disconnect on KeyEexists

            build-team Couchbase Build Team added a comment - Build couchbase-server-6.6.0-7789 contains kv_engine commit 36134ec with commit message: MB-37009 : DcpProducer::handleResponse, don't disconnect on KeyEexists

            Build couchbase-server-7.0.0-2334 contains kv_engine commit e311e7e with commit message:
            MB-37009: DcpProducer::handleResponce, don't disconnect on KeyEnoent

            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-2334 contains kv_engine commit e311e7e with commit message: MB-37009 : DcpProducer::handleResponce, don't disconnect on KeyEnoent

            Build couchbase-server-7.0.0-2356 contains kv_engine commit 36134ec with commit message:
            MB-37009: DcpProducer::handleResponse, don't disconnect on KeyEexists

            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-2356 contains kv_engine commit 36134ec with commit message: MB-37009 : DcpProducer::handleResponse, don't disconnect on KeyEexists

            Closing the ticket since unit tests passes for the patch set.

            kv_eng commit reference: ee5212ee2faf739a70a342ade60a64eb0191e421

            ashwin.govindarajulu Ashwin Govindarajulu added a comment - Closing the ticket since unit tests passes for the patch set. kv_eng commit reference: ee5212ee2faf739a70a342ade60a64eb0191e421

            People

              ashwin.govindarajulu Ashwin Govindarajulu
              richard.demellow Richard deMellow
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                PagerDuty