Repository: cassandra-dtest Updated Branches: refs/heads/master 6220394e8 -> 163f82c2d
Fix short read protection for tables with no clustering columns patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for CASSANDRA-13880 Project: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/commit/163f82c2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/tree/163f82c2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/diff/163f82c2 Branch: refs/heads/master Commit: 163f82c2db0e86d4dd8f312b291ccd094891b986 Parents: 6220394 Author: Aleksey Yeschenko <alek...@yeschenko.com> Authored: Mon Sep 18 16:14:24 2017 +0100 Committer: Aleksey Yeschenko <alek...@yeschenko.com> Committed: Mon Sep 18 17:33:11 2017 +0100 ---------------------------------------------------------------------- consistency_test.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/163f82c2/consistency_test.py ---------------------------------------------------------------------- diff --git a/consistency_test.py b/consistency_test.py index 27e5d01..407873c 100644 --- a/consistency_test.py +++ b/consistency_test.py @@ -774,6 +774,41 @@ class TestAccuracy(TestHelper): class TestConsistency(Tester): @since('3.0') + def test_13880(self): + """ + @jira_ticket CASSANDRA-13880 + """ + cluster = self.cluster + + # disable hinted handoff and set batch commit log so this doesn't interfere with the test + cluster.set_configuration_options(values={'hinted_handoff_enabled': False}) + cluster.set_batch_commitlog(enabled=True) + + cluster.populate(2).start(wait_other_notice=True) + node1, node2 = cluster.nodelist() + + session = self.patient_cql_connection(node1) + + query = "CREATE KEYSPACE IF NOT EXISTS test WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': 2};" + session.execute(query) + + query = "CREATE TABLE IF NOT EXISTS test.test (id int PRIMARY KEY);" + session.execute(query) + + stmt = SimpleStatement("INSERT INTO test.test (id) VALUES (0);", + consistency_level = ConsistencyLevel.ALL) + session.execute(stmt) + + # with node2 down and hints disabled, delete the partition on node1 + node2.stop(wait_other_notice=True) + session.execute("DELETE FROM test.test WHERE id = 0;"); + node2.start(wait_other_notice=True) + + # with both nodes up, do a CL.ALL query with per partition limit of 1; + # prior to CASSANDRA-13880 this would cause short read protection to loop forever + assert_none(session, "SELECT DISTINCT id FROM test.test WHERE id = 0;", cl=ConsistencyLevel.ALL) + + @since('3.0') def test_13747(self): """ @jira_ticket CASSANDRA-13747 --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org