hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yu Li (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16931) Setting cell's seqId to zero in compaction flow might cause RS down.
Date Mon, 24 Oct 2016 08:45:58 GMT

    [ 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

View raw message