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

Create __repr__ for classes in cluster_test

    XMLWordPrintable

Details

    • 0

    Description

      It would allow us to print something readable in backtraces when we encounter an issue during cluster tests such that we have more useful information. In the below backtrace we could have benefited from knowing which node was being rebalanced at the time of failure, however, only an object is logged "<testlib.node.Node object at 0x7f6b76322640>". Writing a __repr__ function for the Node class would have printed whatever was returned.

      18:37:36 Starting testset: BucketMigrationTest/num_nodes=4,num_connected=2,memsize=2048...
      18:37:36   BucketMigrationTest.migrate_storage_mode_test... passed [3.6s]
      18:37:39   BucketMigrationTest.migrate_storage_mode_via_failover_test... Traceback with variables (most recent call last):
      18:37:48   File "/home/couchbase/jenkins/workspace/ns-server-cluster-tests/ns_server/cluster_tests/testlib/testlib.py", line 131, in safe_test_function_call
      ...
      18:37:48   File "/home/couchbase/jenkins/workspace/ns-server-cluster-tests/ns_server/cluster_tests/bucket_migration_test.py", line 140, in migrate_storage_mode_via_failover_test
      18:37:48     cluster.recover_node(node, do_rebalance=True)
      18:37:48       self = <bucket_migration_test.BucketMigrationTest object at 0x7f6b766f75e0>
      18:37:48       cluster = <testlib.cluster.Cluster object at 0x7f6b76322b50>
      18:37:48       nodes = [<testlib.node.Node object at 0x7f6b763228b0>, <testlib.node.Node object at 0x7f6b76322640>]
      18:37:48       node = <testlib.node.Node object at 0x7f6b76322640>
      18:37:48   File "/home/couchbase/jenkins/workspace/ns-server-cluster-tests/ns_server/cluster_tests/testlib/cluster.py", line 275, in recover_node
      18:37:48     self.rebalance(wait=True, verbose=verbose)
      18:37:48       self = <testlib.cluster.Cluster object at 0x7f6b76322b50>
      18:37:48       node = <testlib.node.Node object at 0x7f6b76322640>
      18:37:48       recovery_type = 'full'
      18:37:48       do_rebalance = True
      18:37:48       verbose = False
      18:37:48       otp_nodes = {'127.0.0.1:9015': 'n_15@127.0.0.1', '127.0.0.1:9016': 'n_16@127.0.0.1'}
      18:37:48       otp_node = 'n_15@127.0.0.1'
      18:37:48       data = {'user': 'Administrator', 'password': 'asdasd', 'otpNode': 'n_15@127.0.0.1', 'recoveryType': 'full'}
      18:37:48       r = <Response [200]>
      18:37:48   File "/home/couchbase/jenkins/workspace/ns-server-cluster-tests/ns_server/cluster_tests/testlib/cluster.py", line 189, in rebalance
      18:37:48     assert error is expected_error, \
      18:37:48       self = <testlib.cluster.Cluster object at 0x7f6b76322b50>
      18:37:48       ejected_nodes = None
      18:37:48       wait = True
      18:37:48       timeout_s = 600
      18:37:48       verbose = False
      18:37:48       expected_error = None
      18:37:48       known_nodes_string = 'n_15@127.0.0.1,n_16@127.0.0.1'
      18:37:48       ejected_nodes_string = ''
      18:37:48       data = {'knownNodes': 'n_15@127.0.0.1,n_16@127.0.0.1', 'ejectedNodes': ''}
      18:37:48       error = 'Rebalance failed. See logs for detailed reason. You can try again.'
      18:37:48       otp_nodes = {'127.0.0.1:9015': 'n_15@127.0.0.1', '127.0.0.1:9016': 'n_16@127.0.0.1'}
      

      BucketMigrationTest code - https://github.com/couchbase/ns_server/blob/b3fd8118ace2b6fdfc3c3dc3f6afe79803e54157/cluster_tests/bucket_migration_test.py#L140

      Attachments

        Issue Links

          For Gerrit Dashboard: MB-58127
          # Subject Branch Project Status CR V

          Activity

            People

              amir.biglarbegian Amir Biglarbegian (Inactive)
              ben.huddleston Ben Huddleston
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty