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

Chung-En Lee updated HDDS-15857:
--------------------------------
    Description: 
Currently, the `getChecksums` method in `KeyValueHandler.java` fails or returns 
incorrect checksums when chunks have variable sizes or are smaller than 
bytesPerChunk.

The original code assumes all chunks (except the last one) have a fixed size 
equal to `bytesPerChunk`. This assumption is incorrect when chunks have 
different lengths, leading to wrong index calculations.

Crucially, when checksum verification is enabled, the DataNode must return the 
actual ChunkInfo (which contains chunk lengths) to the client. Without this 
metadata, the client cannot perceive the boundaries of each varying chunk, 
making it impossible to correctly map the offsets and compute/verify the 
checksums.

  was:
Currently, the `getChecksums` method in `KeyValueHandler.java` fails or returns 
incorrect checksums when chunks have variable sizes or are smaller than 
bytesPerChunk.

The original code assumes all chunks (except the last one) have a fixed size 
equal to `bytesPerChunk`. This assumption is incorrect when chunks have 
different lengths, leading to wrong index calculations.


> Fix checksum calculation in KeyValueHandler for variable-sized chunks
> ---------------------------------------------------------------------
>
>                 Key: HDDS-15857
>                 URL: https://issues.apache.org/jira/browse/HDDS-15857
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Chung-En Lee
>            Assignee: Chung-En Lee
>            Priority: Critical
>
> Currently, the `getChecksums` method in `KeyValueHandler.java` fails or 
> returns incorrect checksums when chunks have variable sizes or are smaller 
> than bytesPerChunk.
> The original code assumes all chunks (except the last one) have a fixed size 
> equal to `bytesPerChunk`. This assumption is incorrect when chunks have 
> different lengths, leading to wrong index calculations.
> Crucially, when checksum verification is enabled, the DataNode must return 
> the actual ChunkInfo (which contains chunk lengths) to the client. Without 
> this metadata, the client cannot perceive the boundaries of each varying 
> chunk, making it impossible to correctly map the offsets and compute/verify 
> the checksums.



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