Jean-Daniel Cryans created HBASE-6200:
-----------------------------------------

             Summary: KeyComparator.compareWithoutRow can be wrong when 
families have the same prefix
                 Key: HBASE-6200
                 URL: https://issues.apache.org/jira/browse/HBASE-6200
             Project: HBase
          Issue Type: Bug
    Affects Versions: 0.94.0, 0.92.1, 0.90.6
            Reporter: Jean-Daniel Cryans
            Priority: Blocker
             Fix For: 0.90.7, 0.92.2, 0.96.0, 0.94.1


As reported by magma on IRC (AKA Desert Rose on the ML), Result}} has a weird 
behavior when some families share the same prefix. He posted a link to his code 
to show how it fails, http://pastebin.com/7TBA1XGh

Basically {{KeyComparator.compareWithoutRow}} doesn't differentiate families 
and qualifiers so "f:a" is said to be bigger than "f1:", which is false. Then 
what happens is that the KVs are returned in the right order from the RS but 
then doing {{Result.binarySearch}} it uses {{KeyComparator.compareWithoutRow}} 
which has a different sorting so the end result is undetermined.

I added some debug and I can see that the data is returned in the right order 
but {{Arrays.binarySearch}} returned the wrong KV, which is then verified 
agains the passed family and qualifier which fails so null is returned.

I don't know how frequent it is for users to have families with the same 
prefix, but those that do have that and that use those families at the same 
time will have big correctness issues. This is why I mark this as a blocker.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to