hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Rodionov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-14782) FuzzyRowFilter skips valid rows
Date Tue, 17 Nov 2015 18:56:11 GMT

    [ https://issues.apache.org/jira/browse/HBASE-14782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15009250#comment-15009250

Vladimir Rodionov commented on HBASE-14782:

Currently, it is impossible that fuzzyKeyMeta.length >= result.length

That is not correct.
byte[] result =
        Arrays.copyOf(fuzzyKeyBytes, length > fuzzyKeyBytes.length ? length : fuzzyKeyBytes.length);

result size is maximum of fuzzyKeyBytes length and last row length.

But if it does, for example, result is '\x01\x01\x01' and fuzzyKeyMeta is
{1, 0, 0, 1}
trimTrailingZeroes will return '\x01' ?

Result size is always equals or greater than fuzzyKeyMeta, therefore your case is impossible.

> 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

View raw message