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

Setting cell's seqId to zero in compaction flow might cause RS down.

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.3.0, 1.4.0, 1.2.3, 1.1.7, 2.0.0
    • Fix Version/s: 1.3.0, 1.2.4, 1.1.8, 2.0.0
    • Component/s: regionserver
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      Compactor#performCompaction
      do {
      hasMore = scanner.next(cells, scannerContext);
      // output to writer:
      for (Cell c : cells) {
      if (cleanSeqId && c.getSequenceId() <= smallestReadPoint)

      { CellUtil.setSequenceId(c, 0); }

      writer.append(c);
      }
      cells.clear();
      } while (hasMore);
      scanner.next will choose at most "hbase.hstore.compaction.kv.max" kvs, the last cell still reference by StoreScanner.prevCell, so if cleanSeqId is called when the scanner.next call StoreScanner.checkScanOrder may throw exception and cause regionserver down.

        Attachments

        1. HBASE-16931-master.patch
          7 kB
          binlijin
        2. HBASE-16931.branch-1.v2.patch
          8 kB
          binlijin
        3. HBASE-16931.branch-1.patch
          8 kB
          binlijin
        4. HBASE-16931_master_v5.patch
          8 kB
          binlijin
        5. HBASE-16931_master_v4.patch
          9 kB
          binlijin
        6. HBASE-16931_master_v3.patch
          9 kB
          binlijin
        7. HBASE-16931_master_v2.patch
          8 kB
          binlijin

          Activity

            People

            • Assignee:
              aoxiang binlijin
              Reporter:
              aoxiang binlijin
            • Votes:
              0 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: