Uploaded image for project: 'Couchbase .NET client library'
  1. Couchbase .NET client library
  2. NCBC-2985

HTTP streaming not used as fallback for getting Cluster Config

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 3.2.0, 3.2.3
    • 3.2.4
    • None
    • None
    • 1

    Description

      Environment

      • .NET SDK 3.2.0 (and latest 3.2.3)
      • AO 2.1 with Load Balancer and external DNS
      • With Couchbase Server 6.6

      Problem:
      When GCCCP and CCCP fail to get a cluster config there is no fallback to use HTTP streaming, as described in the bootstrapping RFC. This is only an issue for certain k8s deployments where the connection endpoint only has the management port available so it requires this final fallback method of retrieving the config to proceed with bootstrapping and connecting to the other nodes.

      Attempting to bootstrap like this results in the following error:

      2021-09-27T09:25:46.4482350-05:00  [DBG] Attempted bootstrapping on endpoint "console.testclust.couchbase" has failed. (e80489ed)
      System.Net.Sockets.SocketException (60): Operation timed out
         at Couchbase.Core.IO.Connections.ConnectionFactory.CreateAndConnectAsync(IPEndPoint endPoint, HostEndpoint hostEndpoint, CancellationToken cancellationToken)
         at Couchbase.Core.IO.Connections.ConnectionPoolBase.CreateConnectionAsync(CancellationToken cancellationToken)
         at Couchbase.Core.IO.Connections.DataFlow.DataFlowConnectionPool.<>c__DisplayClass29_0.<<AddConnectionsAsync>g__StartConnection|0>d.MoveNext()
      --- End of stack trace from previous location ---
         at Couchbase.Core.IO.Connections.DataFlow.DataFlowConnectionPool.AddConnectionsAsync(Int32 count, CancellationToken cancellationToken)
         at Couchbase.Core.IO.Connections.DataFlow.DataFlowConnectionPool.InitializeAsync(CancellationToken cancellationToken)
         at Couchbase.Core.ClusterNode.InitializeAsync()
         at Couchbase.Core.DI.ClusterNodeFactory.CreateAndConnectAsync(HostEndpoint endPoint, BucketType bucketType, NodeAdapter nodeAdapter, CancellationToken cancellationToken)
         at Couchbase.Core.ClusterContext.BootstrapGlobalAsync()
      

       

      Attachments

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

        Activity

          jmorris Jeff Morris added a comment -

          I am closing this as we have found that the problem was that the operator was attempting to bootstrap using the console which only supports HTTP. Cluster level bootstrapping must be done over KV, so this doesn't work. The fix is to add additional components that expose the proper 11210 and 11207 ports and bootstrap against them.

          jmorris Jeff Morris added a comment - I am closing this as we have found that the problem was that the operator was attempting to bootstrap using the console which only supports HTTP. Cluster level bootstrapping must be done over KV, so this doesn't work. The fix is to add additional components that expose the proper 11210 and 11207 ports and bootstrap against them.

          People

            jmorris Jeff Morris
            will.broadbelt Will Broadbelt
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty