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

Gracefully close memdclients on pipeline shutdown/reconnect



    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • core-10.0.5
    • None
    • None
    • 1
    • SDK40: ARM /Graviton, JDBC, SDK42: ErMp v2, JDBC, Connect


      At present within the ForceConnect call (which reconnects all connections for purposes of picking up new certificates) any in flight operations are terminated with an ErrForcedReconnect. This is not great, and this logic is actually shared by what happens when the SDK becomes aware that the cluster has collections support when previously it didn't - the difference being that in flight requests are terminated with io.EOF.

      What should actually happen is that we create new connections but allow the old connections to stay live until either they get terminated or their op list empties (i.e. all in flight requests are completed).

      There is some consideration here of whether this will cause extra delay in returning to the user in the case that the node has been rebalanced out and is no longer active. In practise any delay should be minimal if at all - the connection itself will get EOF'd and trigger the same drain logic as would on SDK shutdown (and is currently used in this codepath).


        Issue Links

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


            There are no comments yet on this issue.


              charles.dixon Charles Dixon
              charles.dixon Charles Dixon
              0 Vote for this issue
              1 Start watching this issue



                Gerrit Reviews

                  There are no open Gerrit changes