[ https://issues.apache.org/jira/browse/CASSANDRA-20258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17923415#comment-17923415 ]
Caleb Rackliffe commented on CASSANDRA-20258: --------------------------------------------- |[5.0|https://github.com/apache/cassandra/pull/3862]|TBD| |[trunk|https://github.com/apache/cassandra/pull/3855]|[^ci_summary.html]| > Avoid under-skipping during intersections when an iterator has mixed STATIC > and WIDE keys > ----------------------------------------------------------------------------------------- > > Key: CASSANDRA-20258 > URL: https://issues.apache.org/jira/browse/CASSANDRA-20258 > Project: Apache Cassandra > Issue Type: Bug > Components: Feature/SAI > Reporter: David Capwell > Assignee: Caleb Rackliffe > Priority: Normal > Fix For: 5.0.x, 5.x > > Attachments: ci_summary.html, result_details.tar.gz > > Time Spent: 20m > Remaining Estimate: 0h > > This was found by CASSANDRA-20156 > {code} > ERROR 20:58:20 Exception in thread Thread[node1_ReadStage-2,10,SharedPool] > java.lang.AssertionError: Skipped to a key smaller than the target! iterator: > org.apache.cassandra.index.sai.disk.IndexSearchResultIterator@7cf89595, > target key: PrimaryKey: { token: -3179252520983795557, partition: > DecoratedKey(-3179252520983795557, > 0001000000100000000000004f00a20000000000000000), clustering: > CLUSTERING:654819bf, 4ee5 } , returned key: PrimaryKey: { token: > -3179252520983795557, partition: DecoratedKey(-3179252520983795557, > 0001000000100000000000004f00a20000000000000000), clustering: > CLUSTERING:67c2161c, 656f } > at > org.apache.cassandra.index.sai.iterators.KeyRangeIntersectionIterator.computeNext(KeyRangeIntersectionIterator.java:109) > at > org.apache.cassandra.index.sai.iterators.KeyRangeIntersectionIterator.computeNext(KeyRangeIntersectionIterator.java:45) > at > org.apache.cassandra.utils.AbstractGuavaIterator.tryToComputeNext(AbstractGuavaIterator.java:125) > at > org.apache.cassandra.utils.AbstractGuavaIterator.hasNext(AbstractGuavaIterator.java:119) > at > org.apache.cassandra.index.sai.plan.StorageAttachedIndexSearcher$ResultRetriever.nextKey(StorageAttachedIndexSearcher.java:308) > at > org.apache.cassandra.index.sai.plan.StorageAttachedIndexSearcher$ResultRetriever.nextKeyInRange(StorageAttachedIndexSearcher.java:262) > at > org.apache.cassandra.index.sai.plan.StorageAttachedIndexSearcher$ResultRetriever.nextSelectedKeysInRange(StorageAttachedIndexSearcher.java:227) > at > org.apache.cassandra.index.sai.plan.StorageAttachedIndexSearcher$ResultRetriever.nextRowIterator(StorageAttachedIndexSearcher.java:203) > at > org.apache.cassandra.index.sai.plan.StorageAttachedIndexSearcher$ResultRetriever.computeNext(StorageAttachedIndexSearcher.java:186) > at > org.apache.cassandra.index.sai.plan.StorageAttachedIndexSearcher$ResultRetriever.computeNext(StorageAttachedIndexSearcher.java:136) > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > at > org.apache.cassandra.db.transform.BasePartitions.hasNext(BasePartitions.java:90) > at > org.apache.cassandra.db.partitions.UnfilteredPartitionIterators$Serializer.serialize(UnfilteredPartitionIterators.java:334) > at > org.apache.cassandra.db.ReadResponse$LocalDataResponse.build(ReadResponse.java:208) > at > org.apache.cassandra.db.ReadResponse$LocalDataResponse.<init>(ReadResponse.java:193) > at > org.apache.cassandra.db.ReadResponse.createDataResponse(ReadResponse.java:50) > at > org.apache.cassandra.db.ReadCommand.createResponse(ReadCommand.java:383) > at > org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:2166) > {code} > {code} > CREATE KEYSPACE IF NOT EXISTS ks1 WITH replication = {'class': > 'SimpleStrategy', 'replication_factor': 1}; > CREATE TABLE ks1.tbl ( > pk0 boolean, > pk1 uuid, > ck0 date, > ck1 smallint, > s0 timeuuid static, > v0 bigint, > v1 float, > PRIMARY KEY ((pk0, pk1), ck0, ck1) > ) WITH CLUSTERING ORDER BY (ck0 DESC, ck1 DESC) > AND additional_write_policy = '99p' > AND allow_auto_snapshot = true > AND bloom_filter_fp_chance = 0.01 > AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} > AND cdc = false > AND comment = '' > AND compaction = {'class': > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', > 'max_threshold': '32', 'min_threshold': '4'} > AND compression = {'chunk_length_in_kb': '16', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'} > 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 = 'BLOCKING' > AND speculative_retry = '99p'; > CREATE CUSTOM INDEX tbl_pk0 ON ks1.tbl(pk0) USING > 'StorageAttachedIndex'; > CREATE INDEX tbl_pk1 ON ks1.tbl(pk1) USING 'SAI'; > CREATE INDEX tbl_ck0 ON ks1.tbl(ck0) USING 'SAI'; > CREATE INDEX tbl_ck1 ON ks1.tbl(ck1) USING 'SAI'; > CREATE CUSTOM INDEX tbl_s0 ON ks1.tbl(s0) USING > 'StorageAttachedIndex'; > CREATE INDEX tbl_v0 ON ks1.tbl(v0) USING 'SAI'; > CREATE CUSTOM INDEX tbl_v1 ON ks1.tbl(v1) USING > 'StorageAttachedIndex';: > org.apache.cassandra.distributed.test.cql3.SingleNodeTableWalkTest.State > History: > 1: INSERT INTO ks1.tbl (pk0, pk1, ck0, ck1, s0) VALUES (true, > 00000000-0000-4700-8d00-000000000000, '-3038243-10-30', -12906, > 00000000-0000-1900-aa00-000000000000) -- on node1 > 3: INSERT INTO ks1.tbl (pk0, pk1, ck0, ck1, v0, v1) VALUES (false, > 00000000-0000-4f00-a200-000000000000, '-1225324-10-07', -3223 - -23420, > -7318794006633168842, 8.0350916E-32 + 6.127658E28) -- on node1 > 35: DELETE FROM ks1.tbl WHERE pk0 = false AND pk1 = > 00000000-0000-4a00-b700-000000000000 -- on node1 > 87: UPDATE ks1.tbl SET v0=4974553859020963454, v1=-6.296252E-8, > s0=00000000-0000-1c00-b700-000000000000 WHERE pk0 = true AND pk1 = > 00000000-0000-4700-8d00-000000000000 AND ck0 = '-2307593-12-11' AND ck1 = > 6685 -- on node1 > 91: nodetool flush ks1 tbl > 99: DELETE FROM ks1.tbl WHERE pk0 = false AND pk1 = > 00000000-0000-4f00-a200-000000000000 AND ck0 = '-1111567-10-09' AND ck1 = > 25967 -- on node1 > 138: DELETE s0, s0 FROM ks1.tbl WHERE pk0 = false AND pk1 = > 00000000-0000-4500-9200-000000000000 -- on node1 > 164: UPDATE ks1.tbl SET v0=661638033280081514 + 6845478902401611415, > s0=00000000-0000-1e00-b100-000000000000 WHERE pk0 = false AND pk1 = > 00000000-0000-4a00-b700-000000000000 AND ck0 = '-2772616-12-13' AND ck1 = > -14471 -- on node1 > 172: SELECT * FROM ks1.tbl WHERE pk0 = false AND ck0 = '-1225324-10-07' ALLOW > FILTERING -- pk0 boolean (indexed with SAI), ck0 date (reversed) (indexed > with SAI), on node1, fetch size 100 > {code} -- 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