hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (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:20:58 GMT

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

Anoop Sam John commented on HBASE-16931:
----------------------------------------

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.  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.  Seem V3 also dont have the change
to reset the local variable to null.  

> 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)

Mime
View raw message