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

Nitsan Wakart updated CASSANDRA-21358:
--------------------------------------
    Component/s: Local/Compaction

> CursorBasedCompaction: Final index block width off by one byte in 
> SSTableCursorWriter#appendBIGIndex()
> ------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-21358
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21358
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Local/Compaction, Local/SSTable
>            Reporter: Arjun Ashok
>            Priority: Normal
>
> The cursor compaction path computes the width of the final index block as 
> (partitionEnd - partitionStart - 1) - indexBlockStartOffset, which excludes 
> the end-of-partition marker byte. 
> The iterator path (BigFormatPartitionWriter#finish()) calls addIndexBlock() 
> after writing the end marker, so its width includes that byte. 
> The resulting Index.db entry has a width 1 byte smaller than the iterator 
> produces. When seeking into a large partition near the end using the index, 
> the reader's internal byte accounting is off by 1, causing misaligned reads. 
> Affects any partition large enough to span multiple index blocks (default 
> threshold: 64 KiB).



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