[ 
https://issues.apache.org/jira/browse/CASSANDRA-20258?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

David Capwell updated CASSANDRA-20258:
--------------------------------------
    Description: 
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}

  was:
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}


> AssertionError thrown in sai KeyRangeIntersectionIterator: Skipped to a key 
> smaller than the target! iterator: IndexSearchResultIterator
> ----------------------------------------------------------------------------------------------------------------------------------------
>
>                 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
>
>
> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to