[
https://issues.apache.org/jira/browse/HBASE-14782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15008188#comment-15008188
]
Heng Chen commented on HBASE-14782:
-----------------------------------
Patch looks good.
But there is a little hint.
{code}
+ int off = fuzzyKeyMeta.length >= result.length? result.length -1:
+ fuzzyKeyMeta.length -1;
+ for( ; off >= 0; off--){
+ if(fuzzyKeyMeta[off] != 0) break;
+ }
{code}
Currently, it is impossible that fuzzyKeyMeta.length >= result.length.
But if it does, for example, result is '\x01\x01\x01' and fuzzyKeyMeta is
{1, 0, 0, 1}
trimTrailingZeroes will return '\x01' ?
I think it is not correct. wdyt?
> FuzzyRowFilter skips valid rows
> -------------------------------
>
> Key: HBASE-14782
> URL: https://issues.apache.org/jira/browse/HBASE-14782
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.0.0
> Reporter: Vladimir Rodionov
> Assignee: Vladimir Rodionov
> Attachments: HBASE-14782-v3.patch, HBASE-14782.patch,
> HBASE-14782.patch
>
>
> The issue may affect not only master branch, but previous releases as well.
> This is from one of our customers:
> {quote}
> We are experiencing a problem with the FuzzyRowFilter for HBase scan. We
> think that it is a bug.
> Fuzzy filter should pick a row if it matches filter criteria irrespective of
> other rows present in table but filter is dropping a row depending on some
> other row present in table.
> Details/Step to reproduce/Sample outputs below:
> Missing row key: \x9C\x00\x044\x00\x00\x00\x00
> Causing row key: \x9C\x00\x03\xE9e\xBB{X\x1Fwts\x1F\x15vRX
> Prerequisites
> 1. Create a test table. HBase shell command -- create 'fuzzytest','d'
> 2. Insert some test data. HBase shell commands:
> • put 'fuzzytest',"\x9C\x00\x044\x00\x00\x00\x00",'d:a','junk'
> • put 'fuzzytest',"\x9C\x00\x044\x01\x00\x00\x00",'d:a','junk'
> • put 'fuzzytest',"\x9C\x00\x044\x00\x01\x00\x00",'d:a','junk'
> • put 'fuzzytest',"\x9C\x00\x044\x00\x00\x01\x00",'d:a','junk'
> • put 'fuzzytest',"\x9C\x00\x044\x00\x01\x00\x01",'d:a','junk'
> • put 'fuzzytest',"\x9B\x00\x044e\xBB\xB2\xBB",'d:a','junk'
> • put 'fuzzytest',"\x9D\x00\x044e\xBB\xB2\xBB",'d:a','junk'
> Now when you run the code, you will find \x9C\x00\x044\x00\x00\x00\x00 in
> output because it matches filter criteria. (Refer how to run code below)
> Insert the row key causing bug:
> HBase shell command: put
> 'fuzzytest',"\x9C\x00\x03\xE9e\xBB{X\x1Fwts\x1F\x15vRX",'d:a','junk'
> Now when you run the code, you will not find \x9C\x00\x044\x00\x00\x00\x00 in
> output even though it still matches filter criteria.
> {quote}
> Verified the issue on master.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)