[ https://issues.apache.org/jira/browse/CASSANDRA-20830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18013495#comment-18013495 ]
Caleb Rackliffe commented on CASSANDRA-20830: --------------------------------------------- Didn't take long to find our first failing seed. This is from a new test, {{MultiNodeTableWalkWithMutationTrackingTest}}, that I'll push up shortly in a new branch... {noformat} accord.utils.Property$PropertyError: Property error detected: Seed = 3447971527803381056 Examples = 10 Pure = true Error: Unexpected results for query: SELECT * FROM ks1.tbl WHERE token(pk0, pk1) = token('✒묭쮯ꪠ뱷', '1988-02-17T00:33:34.107Z') PER PARTITION LIMIT 207 Steps: 400 Values: State: Setup: CREATE KEYSPACE IF NOT EXISTS ks1 WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3} AND replication_type='tracked'; CREATE TABLE ks1.tbl ( pk0 text, pk1 timestamp, ck0 smallint, s0 bigint static, s1 uuid static, v0 vector<frozen<list<timestamp>>, 2>, v1 frozen<map<frozen<list<uuid>>, frozen<tuple<date, bigint, tinyint>>>>, v2 frozen<tuple<frozen<map<timeuuid, time>>>>, v4 frozen<list<vector<smallint, 2>>>, v3 list<frozen<map<timestamp, uuid>>>, PRIMARY KEY ((pk0, pk1), ck0) ) WITH CLUSTERING ORDER BY (ck0 ASC) AND additional_write_policy = '99p' AND allow_auto_snapshot = true AND bloom_filter_fp_chance = 0.1 AND caching = {'keys': 'NONE', 'rows_per_partition': '1396934264'} AND cdc = false AND comment = '' AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy', 'fanout_size': '76', 'max_threshold': '32', 'min_threshold': '4', 'provide_overlapping_tombstones': 'NONE', 'single_sstable_uplevel': 'false', 'tombstone_threshold': '0.085422635', 'unchecked_tombstone_compaction': 'false'} AND compression = {'chunk_length_in_kb': '16', 'class': 'org.apache.cassandra.io.compress.DeflateCompressor'} AND memtable = 'default' AND crc_check_chance = 1.0 AND default_time_to_live = 0 AND extensions = {} AND gc_grace_seconds = 864000 AND incremental_backups = true AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair = 'NONE' AND speculative_retry = '99p';: org.apache.cassandra.distributed.test.cql3.MultiNodeTableWalkBase.MultiNodeState History: 1: DELETE FROM ks1.tbl USING TIMESTAMP 1 WHERE pk0 = '' AND pk1 = '2015-08-01T09:58:09.924Z' -- on node3 2: INSERT INTO ks1.tbl (pk0, pk1, ck0, s0, s1, v0, v1, v2, v4, v3) VALUES ('✒묭쮯ꪠ뱷', '1988-02-17T00:33:34.107Z', 22995 - -10195, 3564315193935804201, 00000000-0000-4c00-b500-000000000000, [['2037-08-28T10:32:11.741Z', '2007-07-30T06:28:57.726Z', '1971-04-03T20:05:23.920Z'], ['2018-06-23T17:43:48.668Z', '2034-11-08T04:15:45.848Z', '2066-02-19T18:32:56.931Z']], {[00000000-0000-4e00-bf00-000000000000, 00000000-0000-4f00-8200-000000000000]: ('-4209731-09-08', -1154931185171508000, 116)}, ({00000000-0000-1600-b400-000000000000: '01:35:05.370667439', 00000000-0000-1a00-a800-000000000000: '01:46:23.763460552'}), [[-9555, 30469]], [{'2033-05-14T17:10:32.208Z': 00000000-0000-4700-b900-000000000000, '2041-01-18T20:49:16.728Z': 00000000-0000-4600-a100-000000000000, '2063-01-09T17:24:08.781Z': 00000000-0000-4a00-b300-000000000000}, {'2038-06-27T03:53:13.595Z': 00000000-0000-4400-8a00-000000000000}]) USING TIMESTAMP 2 -- on node3 3: DELETE FROM ks1.tbl USING TIMESTAMP 3 WHERE pk0 = '' AND pk1 = '2015-08-01T09:58:09.924Z' -- on node2 4: SELECT * FROM ks1.tbl PER PARTITION LIMIT 341 LIMIT 572 -- full table scan, on node3 5: UPDATE ks1.tbl USING TIMESTAMP 4 SET v0=[['2006-06-04T21:16:53.597Z'], ['2028-11-05T21:32:09.490Z', '2014-08-30T10:11:03.456Z', '2002-04-15T09:41:39.941Z']], v4=[[-20852, -124], [-19879, -18707]], v2=({00000000-0000-1800-b100-000000000000: '07:17:25.295656788', 00000000-0000-1c00-a700-000000000000: '16:14:45.747481991', 00000000-0000-1e00-9d00-000000000000: '08:58:56.011314154'}), s1=00000000-0000-4b00-8500-000000000000 WHERE pk0 = '梈ꆜ痳' AND pk1 = '2067-08-15T22:19:59.400Z' AND ck0 = 10008 -- on node3 6: DELETE s0, s1 FROM ks1.tbl USING TIMESTAMP 5 WHERE pk0 = '✒묭쮯ꪠ뱷' AND pk1 = '1988-02-17T00:33:34.107Z' -- on node2 7: SELECT * FROM ks1.tbl WHERE token(pk0, pk1) = token('✒묭쮯ꪠ뱷', '1988-02-17T00:33:34.107Z') PER PARTITION LIMIT 207 -- by token, on node2 at accord.utils.Property$StatefulBuilder.check(Property.java:504) at org.apache.cassandra.distributed.test.cql3.SingleNodeTableWalkTest.test(SingleNodeTableWalkTest.java:368) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:231) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) Caused by: java.lang.AssertionError: Unexpected results for query: SELECT * FROM ks1.tbl WHERE token(pk0, pk1) = token('✒묭쮯ꪠ뱷', '1988-02-17T00:33:34.107Z') PER PARTITION LIMIT 207 Caused by: java.lang.AssertionError: Unexpected rows found: pk0 | pk1 | ck0 | s0 | s1 | v0 | v1 | v2 | v3 | v4 '梈ꆜ痳' | '2067-08-15T22:19:59.400Z' | 10008 | null | 00000000-0000-4b00-8500-000000000000 | [['2006-06-04T21:16:53.597Z'], ['2028-11-05T21:32:09.490Z', '2014-08-30T10:11:03.456Z', '2002-04-15T09:41:39.941Z']] | null | ({00000000-0000-1800-b100-000000000000: '07:17:25.295656788', 00000000-0000-1c00-a700-000000000000: '16:14:45.747481991', 00000000-0000-1e00-9d00-000000000000: '08:58:56.011314154'}) | null | [[-20852, -124], [-19879, -18707]] Expected: pk0 | pk1 | ck0 | s0 | s1 | v0 | v1 | v2 | v3 | v4 '✒묭쮯ꪠ뱷' | '1988-02-17T00:33:34.107Z' | -32346 | null | null | [['2037-08-28T10:32:11.741Z', '2007-07-30T06:28:57.726Z', '1971-04-03T20:05:23.920Z'], ['2018-06-23T17:43:48.668Z', '2034-11-08T04:15:45.848Z', '2066-02-19T18:32:56.931Z']] | {[00000000-0000-4e00-bf00-000000000000, 00000000-0000-4f00-8200-000000000000]: ('-4209731-09-08', -1154931185171508000, 116)} | ({00000000-0000-1600-b400-000000000000: '01:35:05.370667439', 00000000-0000-1a00-a800-000000000000: '01:46:23.763460552'}) | [{'2033-05-14T17:10:32.208Z': 00000000-0000-4700-b900-000000000000, '2041-01-18T20:49:16.728Z': 00000000-0000-4600-a100-000000000000, '2063-01-09T17:24:08.781Z': 00000000-0000-4a00-b300-000000000000}, {'2038-06-27T03:53:13.595Z': 00000000-0000-4400-8a00-000000000000}] | [[-9555, 30469]] at org.apache.cassandra.harry.model.ASTSingleTableModel.validateAnyOrder(ASTSingleTableModel.java:786) at org.apache.cassandra.harry.model.ASTSingleTableModel.validate(ASTSingleTableModel.java:715) at org.apache.cassandra.harry.model.ASTSingleTableModel.validate(ASTSingleTableModel.java:709) at org.apache.cassandra.harry.model.ASTSingleTableModel.validate(ASTSingleTableModel.java:695) at org.apache.cassandra.distributed.test.cql3.StatefulASTBase$BaseState.lambda$command$4(StatefulASTBase.java:348) at accord.utils.Property$SimpleCommand.applyUnit(Property.java:767) at accord.utils.Property$UnitCommand.apply(Property.java:723) at accord.utils.Property$UnitCommand.apply(Property.java:715) {noformat} > AST Fuzz testing support for tables w/ mutation tracking enabled > ---------------------------------------------------------------- > > Key: CASSANDRA-20830 > URL: https://issues.apache.org/jira/browse/CASSANDRA-20830 > Project: Apache Cassandra > Issue Type: Task > Components: Consistency/Coordination > Reporter: Caleb Rackliffe > Assignee: Caleb Rackliffe > Priority: Normal > Fix For: NA > > > We need to start exposing the mutation tracking work to the AST fuzz tester. > Specifically, I think we can start with something similar to > {{MultiNodeTableWalkWithoutReadRepairTest}}, just with tracking enabled > rather than RR disabled, etc. The fun thing, from my initial conversations > with [~bdeggleston], is that historical problems like CASSANDRA-19007 might > not be possible due to the way filtering queries work with MT. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org