This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-dtest.git


The following commit(s) were added to refs/heads/trunk by this push:
     new b29f7ac6 Add test to check that reconnection works with prefer_local
b29f7ac6 is described below

commit b29f7ac62463c3c921244931bab591ef3455d61f
Author: Jan Karlsson <jan.karls...@ericsson.com>
AuthorDate: Mon May 15 15:43:17 2023 -0500

    Add test to check that reconnection works with prefer_local
    
    Patch by Jan Karlsson and brandonwilliams; reviewed by bereng for
    CASSANDRA-16718
---
 snitch_test.py | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 46 insertions(+), 1 deletion(-)

diff --git a/snitch_test.py b/snitch_test.py
index 6fc75cbc..7eb8a506 100644
--- a/snitch_test.py
+++ b/snitch_test.py
@@ -6,7 +6,7 @@ import logging
 import re
 
 from cassandra import ConsistencyLevel
-from dtest import Tester
+from dtest import Tester, create_ks, create_cf
 from tools.assertions import assert_stderr_clean
 from tools.jmxutils import (JolokiaAgent, make_mbean)
 
@@ -114,6 +114,51 @@ class TestGossipingPropertyFileSnitch(Tester):
         assert re.search(ipstr.format(NODE1_LISTEN_ADDRESS), out)
         assert re.search(ipstr.format(NODE2_LISTEN_ADDRESS), out)
 
+    def test_prefer_local_reconnect_on_restart(self):
+        """
+        @jira_ticket CASSANDRA-16718
+        """
+
+        NODE1_LISTEN_ADDRESS = '127.0.0.1'
+        NODE1_BROADCAST_ADDRESS = '127.0.0.3'
+
+        NODE2_LISTEN_ADDRESS = '127.0.0.2'
+        NODE2_BROADCAST_ADDRESS = '127.0.0.4'
+        NODE2_LISTEN_ADDRESS_DIFFERENT = '127.0.0.5'
+
+        STORAGE_PORT = 7000
+
+        cluster = self.cluster
+        cluster.populate(2)
+        node1, node2 = cluster.nodelist()
+
+        cluster.seeds = [NODE1_BROADCAST_ADDRESS]
+        cluster.set_configuration_options(values={'endpoint_snitch': 
'org.apache.cassandra.locator.GossipingPropertyFileSnitch',
+                                                  
'listen_on_broadcast_address': 'true'})
+        node1.set_configuration_options(values={'broadcast_address': 
NODE1_BROADCAST_ADDRESS})
+        node2.auto_bootstrap = True
+        node2.set_configuration_options(values={'broadcast_address': 
NODE2_BROADCAST_ADDRESS})
+
+        for node in cluster.nodelist():
+            with open(os.path.join(node.get_conf_dir(), 
'cassandra-rackdc.properties'), 'w') as snitch_file:
+                snitch_file.write("dc=dc1" + os.linesep)
+                snitch_file.write("rack=rack1" + os.linesep)
+                snitch_file.write("prefer_local=true" + os.linesep)
+
+        node1.start(wait_for_binary_proto=True)
+        node2.start(wait_for_binary_proto=True, wait_other_notice=False)
+
+        node1.stress(['write', 'n=100', 'no-warmup'])
+        node2.stop()
+
+        node2.set_configuration_options(values={'listen_address': 
NODE2_LISTEN_ADDRESS_DIFFERENT})
+        node2.start(wait_for_binary_proto=True, wait_other_notice=False)
+
+        session = self.patient_cql_connection(node1)
+        query = session.prepare("SELECT * from keyspace1.standard1;");
+        query.consistency_level = ConsistencyLevel.ALL;
+        session.execute(query)
+
 class TestDynamicEndpointSnitch(Tester):
     @pytest.mark.resource_intensive
     @since('3.10')


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to