Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-15676

FuzzyRowFilter fails and matches all the rows in the table if the mask consists of all 0s

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.98.13, 1.0.2, 1.2.0, 1.1.1, 2.0.0
    • 1.3.0, 1.1.5, 1.2.2, 0.98.20, 2.0.0
    • Filters
    • None
    • Reviewed

    Description

      While using FuzzyRowFilter we noticed that if the mask array consists of all 0s (fixed) the FuzzyRowFilter matches all the rows in the table. We noticed this on HBase 1.1, 1.2 and higher.

      After some digging we suspect that this is because of isPreprocessedMask() check which is used in preprocessMask() which was added here: https://issues.apache.org/jira/browse/HBASE-13761

      If the mask consists of all 0s then the isPreprocessedMask() returns true and the preprocessing which responsible for changing 0s to -1 doesn't happen and hence all rows are matched in scan.

      This scenario can be tested in TestFuzzyRowFilterEndToEnd#testHBASE14782() If we change the
      byte[] fuzzyKey = Bytes.toBytesBinary("\\x00\\x00
      x044");
      byte[] mask = new byte[]

      {1,0,0,0}

      ;
      to
      byte[] fuzzyKey = Bytes.toBytesBinary("\\x9B\\x00
      x044e");
      byte[] mask = new byte[]

      {0,0,0,0,0}

      ;

      We expect one match but this will match all the rows in the table.

      Attachments

        1. hbase-15676-v1.patch
          4 kB
          Matt Warhaftig
        2. hbase-15676-v2.patch
          5 kB
          Matt Warhaftig
        3. hbase-15676-v3.patch
          5 kB
          Matt Warhaftig
        4. hbase-15676-v4.patch
          5 kB
          Matt Warhaftig
        5. hbase-15287-0.98-v1.patch
          5 kB
          Matt Warhaftig

        Activity

          People

            mwarhaftig Matt Warhaftig
            talktorohit54@gmail.com Rohit Sinha
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: