[
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]