[ 
https://issues.apache.org/jira/browse/CASSANDRA-19226?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17877922#comment-17877922
 ] 

Ekaterina Dimitrova commented on CASSANDRA-19226:
-------------------------------------------------

Different type of flakiness now:
{code:java}

AssertionError: [{'address': ('127.0.0.1', 9046), 'change_type': 'NEW_NODE'}, 
{'address': ('127.0.0.1', 9042), 'change_type': 'MOVED_NODE'}]
assert 1 == 2
  +1
  -2
self = <pushed_notifications_test.TestPushedNotifications object at 
0x7ff418184610>

    @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
E               AssertionError: [{'address': ('127.0.0.1', 9046), 
'change_type': 'NEW_NODE'}, {'address': ('127.0.0.1', 9042), 'change_type': 
'MOVED_NODE'}]
E               assert 1 == 2
E                 +1
E                 -2

pushed_notifications_test.py:159: AssertionError
{code}


> Test Failure: 
> pushed_notifications_test.TestPushedNotifications.test_move_single_node_localhost
> -----------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-19226
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19226
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/dtest/python
>            Reporter: Jacek Lewandowski
>            Priority: Normal
>             Fix For: 5.x
>
>
> https://app.circleci.com/pipelines/github/jacek-lewandowski/cassandra/1252/workflows/234ccc92-65f2-4adb-a68a-a5505398f4d0/jobs/63791/tests
> {noformat}
> 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
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to