[ 
https://issues.apache.org/jira/browse/CASSANDRA-20262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17922241#comment-17922241
 ] 

David Capwell commented on CASSANDRA-20262:
-------------------------------------------

Spoke with Ariel in slack and got this failing in the existing tests as well

{code}
diff --git 
a/test/distributed/org/apache/cassandra/distributed/test/accord/InteropTokenRangeTest.java
 
b/test/distributed/org/apache/cassandra/distributed/test/accord/InteropTokenRangeTest.java
index 4afe1fa28f..47f2402590 100644
--- 
a/test/distributed/org/apache/cassandra/distributed/test/accord/InteropTokenRangeTest.java
+++ 
b/test/distributed/org/apache/cassandra/distributed/test/accord/InteropTokenRangeTest.java
@@ -40,6 +40,7 @@ import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.distributed.Cluster;
 import org.apache.cassandra.distributed.api.ICoordinator;
+import org.apache.cassandra.distributed.api.QueryResult;
 import org.apache.cassandra.distributed.api.SimpleQueryResult;
 import org.apache.cassandra.distributed.test.TestBaseImpl;
 import org.apache.cassandra.service.consensus.TransactionalMode;
@@ -93,6 +94,10 @@ public class InteropTokenRangeTest extends TestBaseImpl
                     
Assertions.assertThat(tokens(node.executeWithResult(withKeyspace("SELECT * FROM 
%s.tbl WHERE " + op.condition), QUORUM, pk)))
                               .describedAs("Token %d with operator %s", token, 
op.condition)
                               .isEqualTo(op.expected(token, tokens));
+
+                    
Assertions.assertThat(tokens(node.executeWithPagingWithResult(withKeyspace("SELECT
 * FROM %s.tbl WHERE " + op.condition), QUORUM, 1, pk)))
+                              .describedAs("Token %d with operator %s", token, 
op.condition)
+                              .isEqualTo(op.expected(token, tokens));
                 }
 
                 for (TokenOperator lt : Arrays.asList(TokenOperator.lt, 
TokenOperator.lte))
@@ -112,7 +117,7 @@ public class InteropTokenRangeTest extends TestBaseImpl
         }
     }
 
-    public static NavigableSet<Long> tokens(SimpleQueryResult result)
+    public static NavigableSet<Long> tokens(QueryResult result)
     {
         NavigableSet<Long> set = new TreeSet<>();
         while (result.hasNext())

{code}

The problem is paging...

> 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
>            Priority: Normal
>             Fix For: 5.x
>
>
> 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