[ 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