Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
1.3.0, 1.4.0, 1.2.3, 1.1.7, 2.0.0
-
None
-
Reviewed
Description
Compactor#performCompaction
do {
hasMore = scanner.next(cells, scannerContext);
// output to writer:
for (Cell c : cells) {
if (cleanSeqId && c.getSequenceId() <= smallestReadPoint)
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.