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

DCP backpressure can cause broken client

    XMLWordPrintable

Details

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

            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