Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-50062

cbtransfer fails to transfer from server with enforced TLS

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Major
    • None
    • 6.6.5
    • tools
    • Untriaged
    • Centos 64-bit
    • 1
    • Unknown

    Description

      What's happening?

      When attempting to access a node with enforced TLS, cbtransfer gives the following error:

      Exception in thread w0:
      Traceback (most recent call last):
        File "/opt/couchbase/lib/python/runtime/lib/python3.7/threading.py", line 917, in _bootstrap_inner
          self.run()
        File "/opt/couchbase/lib/python/runtime/lib/python3.7/threading.py", line 865, in run
          self._target(*self._args, **self._kwargs)
        File "/opt/couchbase/lib/python/pump.py", line 446, in run_worker
          curx).run()
        File "/opt/couchbase/lib/python/pump.py", line 504, in run
          rv_batch, batch = self.source.provide_batch()
        File "/opt/couchbase/lib/python/pump_dcp.py", line 253, in provide_batch
          rv = self.get_dcp_conn()
        File "/opt/couchbase/lib/python/pump_dcp.py", line 550, in get_dcp_conn
          self.opts.no_ssl_verify, self.opts.cacert)
        File "/opt/couchbase/lib/python/pump.py", line 1199, in get_mcd_conn
          conn = cb_bin_client.MemcachedClient(host, port, use_ssl=use_ssl, verify=verify, cacert=ca_cert)
        File "/opt/couchbase/lib/python/cb_bin_client.py", line 112, in __init__
          raise sock_error
      UnboundLocalError: local variable 'sock_error' referenced before assignment

      This also causes a hang.

      This works fine on non-tls nodes, and if localhost and 8091 are used in place of an external ip address.

      Also note that this issue is also seen on Neo, where cbtransfer is deprecated.

      What's expected?

      I expect this to either succeed, or at least give a meaningful error message.

      Steps to reproduce

      1. Start a cluster (all services except analytics is fine)
      2. set cluster encryption level to strict e.g. 

        curl -X POST -u Administrator:password http://localhost:8091/settings/security -d clusterEncryptionLevel=strict

      1. Load some amount of data (travel-sample in this case)
      2. Attempt a cbtransfer from the node e.g. 

        ./cbtransfer https://10.112.207.101:18091 ~/example -u Administrator -p password

      Attachments

        Issue Links

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

          Activity

            People

              joe.mitchelljones Joe Mitchell Jones
              joe.mitchelljones Joe Mitchell Jones
              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