Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-4296

Dead loop in HBase reverse scan when amount of scan data is greater than SCAN_RESULT_CHUNK_SIZE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.6.0
    • 4.15.0, 5.1.0, 4.14.2
    • None
    • None

    Description

      This problem seems to only occur with reverse scan not forward scan. When amount of scan data is greater than SCAN_RESULT_CHUNK_SIZE(default 2999), Class ChunkedResultIteratorFactory will multiple calls function getResultIterator. But in function getResultIterator it always readjusts startRow, in fact, if in reverse scan we should readjust stopRow. For example

      if (ScanUtil.isReversed(scan)) {
          scan.setStopRow(ByteUtil.copyKeyBytesIfNecessary(lastKey));
      } else {
          scan.setStartRow(ByteUtil.copyKeyBytesIfNecessary(lastKey));
      }
      

      Attachments

        1. PHOENIX-4296-4.x-HBase-1.2-v4.patch
          7 kB
          Chen Feng
        2. PHOENIX-4296-4.x-HBase-1.2-v3.patch
          8 kB
          rukawakang
        3. PHOENIX-4296-4.x-HBase-1.2-v2.patch
          8 kB
          Chen Feng
        4. PHOENIX-4296-4.x-HBase-1.2.patch
          1 kB
          Chen Feng
        5. PHOENIX-4296.patch
          1 kB
          Chen Feng

        Activity

          People

            fengchen8086 Chen Feng
            kjf1984 rukawakang
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: