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

ASF GitHub Bot updated HBASE-30392:
-----------------------------------
    Labels: pull-request-available  (was: )

> Exclude checksum bytes from cache-on-write HFile block data size
> ----------------------------------------------------------------
>
>                 Key: HBASE-30392
>                 URL: https://issues.apache.org/jira/browse/HBASE-30392
>             Project: HBase
>          Issue Type: Bug
>          Components: BlockCache
>    Affects Versions: 2.4.11
>            Reporter: huginn
>            Priority: Major
>              Labels: pull-request-available
>
> h3. What happens
> When an HFile block is cached on write, the cache buffer contains only the 
> block header and on-disk data. The HFileBlock metadata field 
> onDiskDataSizeWithHeader is nevertheless populated with a value that also 
> includes trailing checksum bytes.
> h3. When it happens
> This occurs when cache-on-write creates a block through 
> HFileBlock.Writer#getBlockForCaching, including compressed cache and index or 
> inline blocks.
> h3. Impact
> The metadata and buffer length disagree. Subsequent cache block validation or 
> unpacking can use an incorrect data length, causing cache equality failures 
> or read or decompression errors.
> h3. Root cause
> HFileBlock.Writer#getBlockForCaching uses onDiskBlockBytesWithHeader.size() + 
> onDiskChecksum.length even though cloneOnDiskBufferWithHeader() copies only 
> the header and data, and the cache context has no checksum bytes. The 
> invariant for onDiskDataSizeWithHeader is the header plus data length, 
> excluding checksums.
> h3. Proposed fix
> Set onDiskDataSizeWithHeader to onDiskBlockBytesWithHeader.size(), while 
> preserving onDiskSizeWithoutHeader, which continues to include checksum bytes 
> for the physical file size.
> h3. Reproduction / Testing
> Add test evidence here.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to