Uploaded image for project: 'Couchbase Go SDK'
  1. Couchbase Go SDK
  2. GOCBC-984

DCP backpressure can cause broken client

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.5
    • Fix Version/s: 2.1.6
    • Component/s: library
    • Labels:
      None
    • Story Points:
      1

      Description

      When using the DCP client and applying back-pressure via the event handler, the SDK is intended to continue processing incoming packets as expected with dcp ack being used to apply back-pressure to the server.

      Unfortunately the current implementation does not actually do this, it starts up threads for handling DCP packets, correctly hands off packets to those threads, but the queue between it is 1:1 which means that the threads block each-other anyways. This leads to a case where config updates and other requests (such as further OpenStream messages) can be blocked waiting behind DCP events which are intentionally being held back by the application for back-pressure reasons.

        Attachments

          Issue Links

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

            Activity

            Hide
            build-team Couchbase Build Team added a comment -

            Build couchbase-server-7.0.0-3012 contains cbgt commit 3776e77 with commit message:
            MB-41144: Bump up gocbcore version for GOCBC-984

            Show
            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-3012 contains cbgt commit 3776e77 with commit message: MB-41144 : Bump up gocbcore version for GOCBC-984
            Hide
            build-team Couchbase Build Team added a comment -

            Build couchbase-server-7.0.0-3124 contains gocbcore commit 00c424f with commit message:
            GOCBC-984: Fixed DCP backpressure to not block the client.

            Show
            build-team Couchbase Build Team added a comment - Build couchbase-server-7.0.0-3124 contains gocbcore commit 00c424f with commit message: GOCBC-984 : Fixed DCP backpressure to not block the client.
            Hide
            build-team Couchbase Build Team added a comment -

            Build couchbase-server-6.6.1-9153 contains gocbcore commit 00c424f with commit message:
            GOCBC-984: Fixed DCP backpressure to not block the client.

            Show
            build-team Couchbase Build Team added a comment - Build couchbase-server-6.6.1-9153 contains gocbcore commit 00c424f with commit message: GOCBC-984 : Fixed DCP backpressure to not block the client.
            Hide
            build-team Couchbase Build Team added a comment -

            Build sync_gateway-3.0.0-52 contains gocbcore commit 00c424f with commit message:
            GOCBC-984: Fixed DCP backpressure to not block the client.

            Show
            build-team Couchbase Build Team added a comment - Build sync_gateway-3.0.0-52 contains gocbcore commit 00c424f with commit message: GOCBC-984 : Fixed DCP backpressure to not block the client.

              People

              Assignee:
              brett19 Brett Lawson
              Reporter:
              brett19 Brett Lawson
              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