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

Management API Is Broken With KeyNotFoundException

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • None
    • 2.3.8
    • None
    • None

    Description

      Broken by changeset http://review.couchbase.org/#/c/67263/. HttpServerConfig is constructed using bucketName Administrator when making a BucketManager or ClusterManager. Since there is not matching bucket configured, it fails to get the timeout.

      This may also be an issue for buckets not in the configuration file, which are using default settings.

      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 -

          A couple of issues:

          • PoolConfiguration.ConnectTimeout is for K/V socket pool connection timeouts, not for an HTTP request. A new top level (ClientConfiguration or perhaps BucketConfiguration) config property should be created called something like BootstrapTimeout should be added instead (managment API should have its own timeout as well, but that is a different ticket IMO).
          • The CouchbaseHttpClient.Timeout should _always_be set outside of the class since its used in various API's: Views, Management, N1QL, FTS, etc. In this case, I believe it should be set in the CTOR of HttpClientConfig when the CouchbaseHttpClient is instantiated.
          jmorris Jeff Morris added a comment - A couple of issues: PoolConfiguration.ConnectTimeout is for K/V socket pool connection timeouts, not for an HTTP request. A new top level (ClientConfiguration or perhaps BucketConfiguration) config property should be created called something like BootstrapTimeout should be added instead (managment API should have its own timeout as well, but that is a different ticket IMO). The CouchbaseHttpClient.Timeout should _always_be set outside of the class since its used in various API's: Views, Management, N1QL, FTS, etc. In this case, I believe it should be set in the CTOR of HttpClientConfig when the CouchbaseHttpClient is instantiated.

          I'm looking at a fix by falling back to the PoolConfiguration when the bucket isn't found. But I feel like the connect timeout is too short for management calls, it's causing me to get lots of timeouts.

          btburnett3 Brant Burnett added a comment - I'm looking at a fix by falling back to the PoolConfiguration when the bucket isn't found. But I feel like the connect timeout is too short for management calls, it's causing me to get lots of timeouts.
          jmorris Jeff Morris added a comment -

          Thanks Brant, I will revert http://review.couchbase.org/#/c/67263/

          jmorris Jeff Morris added a comment - Thanks Brant, I will revert http://review.couchbase.org/#/c/67263/

          People

            jmorris Jeff Morris
            btburnett3 Brant Burnett
            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