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

StoreScanner's QueryMatcher not reset on store update

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.95.2
    • 0.95.0
    • regionserver
    • None
    • Reviewed

    Description

      When underlying store changed (due compact, bulk load, etc), we destroy current KeyValueHeap and recreate it using checkReseek call. Besides heap recreation, it resets underlying QueryMatcher instance.

      The problem is that checkReseek not called by seek() and reseek(), only by next(). If someone calls seek() just after store changed, it gets wrong scanner results. Call to reseek may end up with NPE.

      AFAIK, current codebase don't call seek and reseek, but it is quite possible in future. Personally, I spent lots of time to find source of wrong scanner results in HBASE-5416.

      Attachments

        1. 6499-trunk-v2.txt
          0.7 kB
          Ted Yu
        2. StoreScanner_not_reset_matcher.patch
          2 kB
          Max Lapan

        Issue Links

          Activity

            People

              shmuma Max Lapan
              shmuma Max Lapan
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: