[ 
https://issues.apache.org/jira/browse/HBASE-16931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15601370#comment-15601370
 ] 

Yu Li commented on HBASE-16931:
-------------------------------

bq. I agree that avoid set and reset cell seqId is the best way. And clone is 
some thing not acceptable IMO. We should be able to tell write whether it need 
to use the seqId of the cell or zero. But that will be bigger change. So am 
fine with current way.
Ok, we'll also use current version as a hot-fix online, so I've no much rights 
to argue here I guess (Smile).

bq. Ya I was abt to ask. For one test do we need to spin a cluster. If possible 
avoid. But I like that u did a UT for this so that in future we wont have 
regression here. 
Ya adding a UT case to cover a new problem is required on our side (Smile). And 
I still insist to move the case into {{TestCompaction}} guys. :-)

> 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, 
> HBASE-16931_master_v4.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)

Reply via email to