You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Pankaj Kumar (Jira)" <ji...@apache.org> on 2022/05/17 05:34:00 UTC
[jira] [Resolved] (HBASE-26856) BufferedDataBlockEncoder.OnheapDecodedCell value can get corrupted
[ https://issues.apache.org/jira/browse/HBASE-26856?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pankaj Kumar resolved HBASE-26856.
----------------------------------
Fix Version/s: 2.5.0
2.6.0
3.0.0-alpha-3
2.4.13
Resolution: Fixed
Pushed to branch-2.4+.
Thanks [~arshad.mohammad] for the contribution & [~apurtell] for reviewing.
> BufferedDataBlockEncoder.OnheapDecodedCell value can get corrupted
> ------------------------------------------------------------------
>
> Key: HBASE-26856
> URL: https://issues.apache.org/jira/browse/HBASE-26856
> Project: HBase
> Issue Type: Bug
> Reporter: Mohammad Arshad
> Assignee: Mohammad Arshad
> Priority: Major
> Fix For: 2.5.0, 2.6.0, 3.0.0-alpha-3, 2.4.13
>
>
> In our production cluster we observed the cell value is modified after successful scanner read. After analyzing we observed OnheapDecodedCell is not created properly.
> We create OnheapDecodedCell with complete valAndTagsBuffer underlying array.
> {code:java}
> return new OnheapDecodedCell(Bytes.copy(keyBuffer, 0, this.keyLength),
> currentKey.getRowLength(), currentKey.getFamilyOffset(), currentKey.getFamilyLength(),
> currentKey.getQualifierOffset(), currentKey.getQualifierLength(),
> currentKey.getTimestamp(), currentKey.getTypeByte(), valAndTagsBuffer.array(),
> valAndTagsBuffer.arrayOffset() + vOffset, this.valueLength, memstoreTS, tagsArray,
> tOffset, this.tagsLength);
> {code}
> Here we are passing valAndTagsBuffer.array() for value extraction.
> The underlying array will be modified if it is altered anywhere.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)