Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-19226

Test Failure: pushed_notifications_test.TestPushedNotifications.test_move_single_node_localhost

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Normal
    • Resolution: Unresolved
    • 5.x
    • Test/dtest/python
    • None
    • Correctness - Test Failure
    • Normal
    • Normal
    • User Report
    • All
    • None

    Description

      https://app.circleci.com/pipelines/github/jacek-lewandowski/cassandra/1252/workflows/234ccc92-65f2-4adb-a68a-a5505398f4d0/jobs/63791/tests

      AssertionError: assert 'MOVED_NODE' == 'NEW_NODE'
        - NEW_NODE
        + MOVED_NODE
      self = <pushed_notifications_test.TestPushedNotifications object at 0x7f4f60868dd0>
      
          @pytest.mark.no_vnodes
          def test_move_single_node_localhost(self):
              """
              Test that we don't get NODE_MOVED notifications from nodes other than the local one,
              when rpc_address is set to localhost (127.0.0.1) Pre 4.0.
              Test that we get NODE_MOVED notifications from nodes other than the local one,
              when rpc_address is set to localhost (127.0.0.1) Post 4.0.
              @jira_ticket  CASSANDRA-10052
              @jira_ticket  CASSANDRA-15677
          
              To set-up this test we override the rpc_address to "localhost (127.0.0.1)" for all nodes, and
              therefore we must change the rpc port or else processes won't start.
              """
              cluster = self.cluster
              cluster.populate(3)
          
              self.change_rpc_address_to_localhost()
          
              cluster.start()
          
              waiters = [NotificationWaiter(self, node, ["TOPOLOGY_CHANGE"])
                         for node in list(self.cluster.nodes.values())]
          
              # The first node sends NEW_NODE for the other 2 nodes during startup, in case they are
              # late due to network delays let's block a bit longer
              logger.debug("Waiting for unwanted notifications...")
              waiters[0].wait_for_notifications(timeout=30, num_notifications=2)
              waiters[0].clear_notifications()
          
              logger.debug("Issuing move command....")
              node1 = list(self.cluster.nodes.values())[0]
              node1.move("123")
          
              version = self.cluster.cassandra_version()
              for waiter in waiters:
                  logger.debug("Waiting for notification from {}".format(waiter.address,))
                  notifications = waiter.wait_for_notifications(30.0)
                  if version >= '4.0':
                      # CASSANDRA-15677 Post 4.0 we'll get the notifications. Check that they are for the right node.
                      assert 1 == len(notifications), notifications
                      notification = notifications[0]
                      change_type = notification["change_type"]
                      address, port = notification["address"]
      >               assert "MOVED_NODE" == change_type
      E               AssertionError: assert 'MOVED_NODE' == 'NEW_NODE'
      E                 - NEW_NODE
      E                 + MOVED_NODE
      
      pushed_notifications_test.py:163: AssertionError
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            jlewandowski Jacek Lewandowski
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: