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

ServiceNotSupportedException: Data service is hidden by null node during BS

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.7.6
    • Fix Version/s: 2.7.9
    • Component/s: library
    • Labels:
      None

      Description

      When bootstrapping to a AWS environment (possibly others) and using SSL, the client overwrites one of the cluster maps nodes with a null node resulting in hiding the configured Data service.

        Attachments

          Issue Links

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

            Activity

            Hide
            ingenthr Matt Ingenthron added a comment -

            Curious Jeff Morris and Matt Carabine: is this somehow AWS specific? Is there something different about this environment compared to our test environment?

            Show
            ingenthr Matt Ingenthron added a comment - Curious Jeff Morris and Matt Carabine : is this somehow AWS specific? Is there something different about this environment compared to our test environment?
            Hide
            matt.carabine Matt Carabine added a comment -

            Not too sure, just was easiest for me to setup a reproduction environment on AWS, perhaps Jeff Morris can offer better insight once we understand why one of the nodes is replaced with a null node.

            Could be related to NCBC-1927, perhaps.

            Show
            matt.carabine Matt Carabine added a comment - Not too sure, just was easiest for me to setup a reproduction environment on AWS, perhaps Jeff Morris can offer better insight once we understand why one of the nodes is replaced with a null node. Could be related to NCBC-1927 , perhaps.
            Hide
            jmorris Jeff Morris added a comment -

            Matt Ingenthron -

            I am not 100% its AWS specific; looks like its more about resolving the hostname to IP Address and then the code tries to compare them when initializing the internal node structure. Since there is no longer a match, null is returned.

            -Jeff

            Show
            jmorris Jeff Morris added a comment - Matt Ingenthron - I am not 100% its AWS specific; looks like its more about resolving the hostname to IP Address and then the code tries to compare them when initializing the internal node structure. Since there is no longer a match, null is returned. -Jeff
            Hide
            jmorris Jeff Morris added a comment - - edited

            Looks like a regression; the endpoints are changed in VBucketServerMap.ServerList and then later on the GetNodes is called again in CouchbaseConfigContext.LoadConfig but since the NodesExt and Nodes match the Node side becomes null and adapter doesn't recognize the data node as being available:

            Here is where the config is modified:

            http://review.couchbase.org/c/109050/4/Src/Couchbase/Configuration/Server/Providers/CarrierPublication/CarrierPublicationProvider.cs#106

            and here is where GetNodes gets called again:

            https://github.com/couchbase/couchbase-net-client/blob/release27/Src/Couchbase/Configuration/CouchbaseConfigContext.cs#L207

            When the NodeAdapter is created the Nodes array has a null element, so this code is executed, but the Node itself is ignored (since its null):

            https://github.com/couchbase/couchbase-net-client/blob/release27/Src/Couchbase/Configuration/Server/Serialization/BucketConfigExtensions.cs#L21

            Show
            jmorris Jeff Morris added a comment - - edited Looks like a regression; the endpoints are changed in VBucketServerMap.ServerList and then later on the GetNodes is called again in CouchbaseConfigContext.LoadConfig but since the NodesExt and Nodes match the Node side becomes null and adapter doesn't recognize the data node as being available: Here is where the config is modified: http://review.couchbase.org/c/109050/4/Src/Couchbase/Configuration/Server/Providers/CarrierPublication/CarrierPublicationProvider.cs#106 and here is where GetNodes gets called again: https://github.com/couchbase/couchbase-net-client/blob/release27/Src/Couchbase/Configuration/CouchbaseConfigContext.cs#L207 When the NodeAdapter is created the Nodes array has a null element, so this code is executed, but the Node itself is ignored (since its null): https://github.com/couchbase/couchbase-net-client/blob/release27/Src/Couchbase/Configuration/Server/Serialization/BucketConfigExtensions.cs#L21
            Hide
            jmorris Jeff Morris added a comment -

            David Saadeh - no I believe it can occur in either case. It's a regression caused by NCBC-1927 which will be reverted in 2.7.9; work around is to use 2.7.6.

            -Jeff

            Show
            jmorris Jeff Morris added a comment - David Saadeh - no I believe it can occur in either case. It's a regression caused by NCBC-1927 which will be reverted in 2.7.9; work around is to use 2.7.6. -Jeff

              People

              • Assignee:
                jmorris Jeff Morris
                Reporter:
                jmorris Jeff Morris
              • 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

                    Error rendering 'com.pagerduty.jira-server-plugin:PagerDuty'. Please contact your Jira administrators.