[ https://issues.apache.org/jira/browse/HBASE-26856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17558705#comment-17558705 ]
Duo Zhang commented on HBASE-26856: ----------------------------------- Reviewing the related code again, I wonder why the value can be changed? Could you please provide a UT to reproduce the problem? For me, seems the block data will be read either from the HFileBlock directly, or from block cache? None of them can be changed, unless you do not reference the block any more. So I prefer we revert the changes here first, and do a more deep analysis on what is the root cause of the problem, and then find a suitable way to fix. Thoughts? Thanks. > 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, 3.0.0-alpha-3 > > > 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)