hbase-issues mailing list archives

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

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

Mikhail Antonov commented on HBASE-16931:
-----------------------------------------

Sorry for late reply here [~carp84] and great investigation

This bug seems bad enough to get it in 1.3.0.. As I'm not very familiar with this code, let
me just have another look Monday morning (tomorrow, PST) and we should be able to cherry pick
to 1.3.. cc [~ghelmling] who has been debugging compactions recently.

(Any more details on how to trigger/repro it? Some specific workload?)

> 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, 1.3.0
>            Reporter: binlijin
>            Assignee: binlijin
>            Priority: Critical
>             Fix For: 2.0.0, 1.3.0, 1.4.0, 1.2.4, 1.1.8
>
>         Attachments: HBASE-16931-master.patch, HBASE-16931.branch-1.patch, HBASE-16931.branch-1.v2.patch,
HBASE-16931_master_v2.patch, HBASE-16931_master_v3.patch, HBASE-16931_master_v4.patch, HBASE-16931_master_v5.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