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

Caleb Rackliffe commented on CASSANDRA-20108:
---------------------------------------------

+1

> IndexOutOfBoundsException when accessing partition where the column was 
> deleted
> -------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-20108
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20108
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Legacy/CQL
>            Reporter: David Capwell
>            Assignee: Sunil Ramchandra Pawar
>            Priority: Normal
>             Fix For: 5.x
>
>         Attachments: 
> ci_summary-trunk-27c9a81b8848c7cc69180c7730ebaa775274480d.html, 
> result_details-trunk-27c9a81b8848c7cc69180c7730ebaa775274480d.tar.gz
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> {code}
> Caused by: java.lang.IndexOutOfBoundsException
>       at java.base/java.nio.Buffer.checkIndex(Buffer.java:687)
>       at java.base/java.nio.HeapByteBuffer.get(HeapByteBuffer.java:169)
>       at 
> org.apache.cassandra.db.marshal.ByteBufferAccessor.getByte(ByteBufferAccessor.java:184)
>       at 
> org.apache.cassandra.db.marshal.ByteBufferAccessor.getByte(ByteBufferAccessor.java:42)
>       at 
> org.apache.cassandra.db.marshal.ByteType.compareCustom(ByteType.java:51)
>       at 
> org.apache.cassandra.db.marshal.AbstractType.compare(AbstractType.java:216)
>       at 
> org.apache.cassandra.db.marshal.AbstractType.compare(AbstractType.java:211)
>       at 
> org.apache.cassandra.db.marshal.AbstractType.compareForCQL(AbstractType.java:269)
>       at org.apache.cassandra.cql3.Operator$1.isSatisfiedBy(Operator.java:73)
>       at 
> org.apache.cassandra.db.filter.RowFilter$SimpleExpression.isSatisfiedBy(RowFilter.java:725)
>       at 
> org.apache.cassandra.db.filter.RowFilter$1.applyToPartition(RowFilter.java:227)
>       at 
> org.apache.cassandra.db.transform.BasePartitions.hasNext(BasePartitions.java:94)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1045)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:629)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:665)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.executeLocally(SelectStatement.java:635)
>       at 
> org.apache.cassandra.cql3.statements.SelectStatement.executeLocally(SelectStatement.java:151)
> {code}
> Table
> {code}
> CREATE TABLE keyspace_test_00."3W56TBuMmC11vPVxalpse84eS" (
>                   pk0 date,
>                   pk1 double,
>                   ck0 int,
>                   ck1 inet,
>                   s0 tinyint static,
>                   v0 int,
>                   v1 varint,
>                   v2 varint,
>                   v3 timestamp,
>                   PRIMARY KEY ((pk0, pk1), ck0, ck1)
>               ) WITH CLUSTERING ORDER BY (ck0 DESC, ck1 ASC)
> {code}
> The query
> {code}
> SELECT *
> FROM keyspace_test_00."3W56TBuMmC11vPVxalpse84eS"
> WHERE s0 = ? —- value is "(byte) -113"
> ALLOW FILTERING
> {code}
> The issue is that we see the delete, but don’t properly handle null data
> {code}
> ByteBuffer foundValue = getValue(metadata, partitionKey, row);
> // value is java.nio.HeapByteBuffer[pos=0 lim=0 cap=0]; aka null (empty)
> {code}
> History of operations on this partition
> {code}
>       History:
>               1: UPDATE pd0
>               2: Select Whole Partition pd0
>               4: Select Whole Partition pd0
>               6: Delete COLUMN [s0, v0, v1, v2, v3] pd0
>               7: Select Whole Partition pd0
>               10: Select Whole Partition pd0
>               12: Select Row pd0
>               17: Delete COLUMN [s0, v0, v1, v2, v3] pd0
>               20: INSERT pd0
>               27: UPDATE pd0
>               38: INSERT pd0
>               41: Select Row pd0
>               56: Select Row pd0
>               66: Delete COLUMN [s0, v0, v1, v2, v3] pd0
>               67: Search on column s0
> {code}
> Here we see an insert was done so liveness info is generated, but we do 
> delete on all columns leaving only the partition/clustering keys around...



--
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

Reply via email to