[ https://issues.apache.org/jira/browse/HBASE-16931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15601244#comment-15601244 ]
Anoop Sam John commented on HBASE-16931: ---------------------------------------- There is a small issue no? Within if we set lastcleancell and its seqId.. reset back based on lastcleanCell != null.. This might cause set the seqId on a wrong cell on which the set to 0 was not happened. We need to have an else and make lastCleanCell =null there no? We need a better name for this variable. > Setting cell's seqId to zero in compaction flow might cause RS down. > -------------------------------------------------------------------- > > Key: HBASE-16931 > URL: https://issues.apache.org/jira/browse/HBASE-16931 > Project: HBase > Issue Type: Bug > Components: regionserver > Affects Versions: 2.0.0 > Reporter: binlijin > Assignee: binlijin > Priority: Critical > Attachments: HBASE-16931-master.patch, HBASE-16931.branch-1.patch, > HBASE-16931_master_v2.patch, HBASE-16931_master_v3.patch > > > 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. -- This message was sent by Atlassian JIRA (v6.3.4#6332)