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

DCP backpressure can cause broken client

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.1.5
    • 2.1.6
    • library
    • None
    • 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

          For Gerrit Dashboard: GOCBC-984
          # Subject Branch Project Status CR V

          Activity

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

            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

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

            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.

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

            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.

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

            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.

            Build sync_gateway-2.8.3-12 contains gocbcore commit 6e2c204 with commit message:
            GOCBC-984: Fixed DCP backpressure to not block the client.

            build-team Couchbase Build Team added a comment - Build sync_gateway-2.8.3-12 contains gocbcore commit 6e2c204 with commit message: GOCBC-984 : Fixed DCP backpressure to not block the client.

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

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

            People

              brett19 Brett Lawson
              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