David Capwell created CASSANDRA-20262:
-----------------------------------------

             Summary: Accord interop token equality query fails with bound check
                 Key: CASSANDRA-20262
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20262
             Project: Apache Cassandra
          Issue Type: Bug
          Components: Accord
            Reporter: David Capwell
            Assignee: Ariel Weisberg


This was found by CASSANDRA-20156

{code}
        State:
                Setup:
                CREATE KEYSPACE IF NOT EXISTS ks1 WITH replication = {'class': 
'SimpleStrategy', 'replication_factor': 1};
                CREATE TABLE ks1.tbl (
                    pk0 tinyint,
                    pk1 time,
                    ck0 boolean,
                    s0 inet static,
                    v0 inet,
                    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.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 fast_path = 'keyspace'
                    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 transactional_mode = 'full'
                    AND transactional_migration_from = 'none'
                    AND speculative_retry = '99p';
                CREATE INDEX tbl_pk0 ON ks1.tbl(pk0) USING 'SAI';
                CREATE INDEX tbl_pk1 ON ks1.tbl(pk1) USING 'SAI';
                CREATE CUSTOM INDEX tbl_ck0 ON ks1.tbl(ck0) USING 
'StorageAttachedIndex';
                CREATE INDEX tbl_s0 ON ks1.tbl(s0) USING 'SAI';
                CREATE CUSTOM INDEX tbl_v0 ON ks1.tbl(v0) USING 
'StorageAttachedIndex';: 
org.apache.cassandra.distributed.test.cql3.AccordInteropSingleNodeTableWalkTest.AccordInteropState
        History:
                1: INSERT INTO ks1.tbl (pk0, pk1, ck0, s0, v0) VALUES (101, 
'14:21:13.188790094', true, '56.151.240.130', '78.156.239.106') -- on node1
                2: DELETE FROM ks1.tbl WHERE  pk0 = -94 AND  pk1 = 
'13:01:51.099235102' AND  ck0 = false -- on node1
                3: SELECT * FROM ks1.tbl WHERE token(pk0, pk1) = token(101, 
'14:21:13.188790094') -- by token, on node1, fetch size 1
                4: SELECT * FROM ks1.tbl WHERE pk1 = '14:21:13.188790094' AND 
ck0 = true AND pk0 = 101 ALLOW FILTERING -- pk1 time (indexed with SAI), ck0 
boolean (indexed with SAI), pk0 tinyint (indexed with SAI), on node1, fetch 
size 5000
                5: UPDATE ks1.tbl SET v0='129.167.56.66', 
s0='c743:a2c4:9dcc:ef0c:bc6b:421c:4fd4:d506' WHERE  pk0 = -24 AND  pk1 = 
'04:40:54.482608170' AND  ck0 = true -- on node1
                6: INSERT INTO ks1.tbl (pk0, pk1, ck0, s0) VALUES (-94, 
'13:01:51.099235102', false, '133.161.178.231') -- on node1
                7: SELECT * FROM ks1.tbl WHERE pk0 = 101 AND s0 = 
'56.151.240.130' ALLOW FILTERING -- pk0 tinyint (indexed with SAI), s0 inet 
(indexed with SAI), on node1, fetch size 1
                8: DELETE FROM ks1.tbl WHERE  pk0 = -94 AND  pk1 = 
'13:01:51.099235102' AND  ck0 = false -- on node1
                9: SELECT * FROM ks1.tbl WHERE pk0 = 101 AND pk1 = 
'14:21:13.188790094' ALLOW FILTERING -- pk0 tinyint (indexed with SAI), pk1 
time (indexed with SAI), on node1, fetch size 10
                10: SELECT * FROM ks1.tbl WHERE token(pk0, pk1) = token(-24, 
'04:40:54.482608170') -- by token, on node1, fetch size 1
                11: SELECT * FROM ks1.tbl WHERE token(pk0, pk1) = token(-24, 
'04:40:54.482608170') -- by token, on node1, fetch size 1
                12: SELECT * FROM ks1.tbl WHERE token(pk0, pk1) = token(-94, 
'13:01:51.099235102') -- by token, on node1, fetch size 1000
                13: SELECT * FROM ks1.tbl WHERE s0 = '56.151.240.130' AND pk1 = 
'14:21:13.188790094' ALLOW FILTERING -- s0 inet (indexed with SAI), pk1 time 
(indexed with SAI), on node1, fetch size 10
                14: SELECT * FROM ks1.tbl WHERE s0 = 
'c743:a2c4:9dcc:ef0c:bc6b:421c:4fd4:d506' AND v0 = '78.156.239.106' AND ck0 = 
true AND pk0 = -24 ALLOW FILTERING -- s0 inet (indexed with SAI), v0 inet 
(indexed with SAI), ck0 boolean (indexed with SAI), pk0 tinyint (indexed with 
SAI), on node1, fetch size 1
                15: UPDATE ks1.tbl SET 
v0='e032:ceaf:d069:bb65:45ad:297a:6bf5:7f5' WHERE  pk0 = 57 AND  pk1 = 
'21:21:22.571524538' AND  ck0 = false -- on node1
                16: SELECT * FROM ks1.tbl WHERE token(pk0, pk1) = token(-94, 
'13:01:51.099235102') -- by token, on node1, fetch size 1
{code}


Error

{code}
INFO  [node1_Native-Transport-Requests-2] 2025-01-29 15:11:00,681 
SubstituteLogger.java:169 - ERROR [node1_Native-Transport-Requests-2] node1 
2025-01-29 15:11:00,681 ErrorMessage.java:457 - Unexpected exception during 
request
java.lang.IllegalArgumentException: 
1b255f4d-ef25-40a6-0000-000000000005:939701389380799159 >= 
1b255f4d-ef25-40a6-0000-000000000005:939701389380799159
        at accord.primitives.Range.<init>(Range.java:212)
        at accord.primitives.Range$EndInclusive.<init>(Range.java:44)
        at 
org.apache.cassandra.service.accord.TokenRange.<init>(TokenRange.java:46)
        at 
org.apache.cassandra.service.accord.TokenRange.create(TokenRange.java:54)
        at 
org.apache.cassandra.service.accord.txn.TxnNamedRead.boundsAsAccordRange(TxnNamedRead.java:127)
        at 
org.apache.cassandra.service.accord.txn.TxnNamedRead.<init>(TxnNamedRead.java:135)
        at 
org.apache.cassandra.service.accord.txn.TxnRead.createRangeRead(TxnRead.java:167)
        at 
org.apache.cassandra.service.StorageProxy.readWithAccord(StorageProxy.java:2199)
        at 
org.apache.cassandra.service.reads.range.RangeCommandIterator.executeAccord(RangeCommandIterator.java:199)
        at 
org.apache.cassandra.service.reads.range.RangeCommandIterator.query(RangeCommandIterator.java:266)
        at 
org.apache.cassandra.service.reads.range.RangeCommandIterator.lambda$sendNextRequests$0(RangeCommandIterator.java:347)
        at 
org.apache.cassandra.service.reads.range.RangeCommandIterator$2.<init>(RangeCommandIterator.java:382)
        at 
org.apache.cassandra.service.reads.range.RangeCommandIterator.retryingPartitionIterator(RangeCommandIterator.java:379)
        at 
org.apache.cassandra.service.reads.range.RangeCommandIterator.sendNextRequests(RangeCommandIterator.java:348)
        at 
org.apache.cassandra.service.reads.range.RangeCommandIterator.computeNext(RangeCommandIterator.java:138)
        at 
org.apache.cassandra.service.reads.range.RangeCommandIterator.computeNext(RangeCommandIterator.java:73)
        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.cql3.statements.SelectStatement.process(SelectStatement.java:1050)
        at 
org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:633)
        at 
org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:607)
        at 
org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:402)
        at 
org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:152)
        at 
org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:287)
        at 
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:382)
        at 
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:369)
        at 
org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:117)
{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