[
https://issues.apache.org/jira/browse/HBASE-13945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14596289#comment-14596289
]
ramkrishna.s.vasudevan commented on HBASE-13945:
------------------------------------------------
bq. Let's not commit something that will cause unit tests to fail. Thanks.
The unit test failed because of a change in the API that was used only in test
case. So there is no functional issue.
bq.ByteBuffer getKeyValueBuffer();
True, but no where the usage is as per the doc. As you said the
TestDataBlockEncoders was already not asserting the BB fully which always
needed a rewind as per the BB's equal impl. That is a valid point. We can
change that.
This getKeyValueBuffer() is used no where except in tests so better to remove
it or fix the API doc.
Also the KVUtil API functionality wise copying the KV to a BB and making
position == limit is making the BB non functional. (It is making it a something
like an EMPTY byte[]).
> Prefix_Tree seekBefore() does not work correctly
> ------------------------------------------------
>
> Key: HBASE-13945
> URL: https://issues.apache.org/jira/browse/HBASE-13945
> Project: HBase
> Issue Type: Bug
> Affects Versions: 1.0.0, 0.98.2, 1.0.1, 1.1.0, 1.0.1.1, 1.1.0.1
> Reporter: ramkrishna.s.vasudevan
> Assignee: ramkrishna.s.vasudevan
> Fix For: 0.98.14, 1.0.2, 1.2.0, 1.1.1, 1.1.2, 1.3.0, 1.2.1
>
> Attachments: HBASE-13945_0.98.patch, HBASE-13945_0.98_1.patch,
> HBASE-13945_0.98_2.patch, HBASE-13945_branch-1.1.patch,
> HBASE-13945_trunk.patch, HBASE-13945_trunk_1.patch
>
>
> This is related to the TestSeekTo test case where the seekBefore() does not
> work with Prefix_Tree because of an issue in getFirstKeyInBlock(). In the
> trunk and branch-1 changing the return type of getFirstKeyInBlock() from BB
> to Cell resolved the problem, but the same cannot be done in 0.98. Hence we
> need a change in the KvUtil.copyToNewBuffer API to handle this. Since the
> limit is made as the position - in seekBefore when we do
> {code}
> byte[] firstKeyInCurrentBlock = Bytes.getBytes(firstKey);
> {code}
> in HFileReaderV2.seekBefore() we end up in an empty byte array and it would
> not be the expected one based on which we try to seek to load a new block.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)