You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "binlijin (JIRA)" <ji...@apache.org> on 2016/10/24 04:16:58 UTC

[jira] [Commented] (HBASE-16931) Cleaned seqid in compaction should set back when write finish.

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

binlijin commented on HBASE-16931:
----------------------------------

{code}
2016-10-21 20:43:41,348 ERROR [regionserver/11.251.219.114:16020-shortCompactions-1477046565275] ipc.RpcServer: Thread[regionserver/11.251.219.114:16020-shortCompactions-1477046565275,5,main] throw uncaught exception
java.lang.AssertionError: Key 067:532053748281/a:priceTrend/1476280811000/Put/vlen=0/seqid=0 followed by a smaller key 067:532053748281/a:priceTrend/1476280811000/Put/vlen=4/seqid=11993975 in cf a
        at org.apache.hadoop.hbase.regionserver.StoreScanner.checkScanOrder(StoreScanner.java:794)
        at org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:552)
        at org.apache.hadoop.hbase.regionserver.compactions.Compactor.performCompaction(Compactor.java:287)
        at org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:111)
        at org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:112)
        at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1238)
        at org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:1862)
        at org.apache.hadoop.hbase.regionserver.CompactSplitThread$CompactionRunner.run(CompactSplitThread.java:519)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
2016-10-21 20:43:41,348 INFO  [regionserver/11.251.219.114:16020-shortCompactions-1477046565275] ipc.RpcServer: Trigger server abort since we cannot serve requests anymore
2016-10-21 20:43:41,348 FATAL [regionserver/11.251.219.114:16020-shortCompactions-1477046565275] regionserver.HRegionServer: ABORTING region server 11.251.219.114,16020,1477046487349: Thread[regionserver/11.251.219.114:16020-shortCompactions-1477046565275,5,main] throw uncaught exception
java.lang.AssertionError: Key 067:532053748281/a:priceTrend/1476280811000/Put/vlen=0/seqid=0 followed by a smaller key 067:532053748281/a:priceTrend/1476280811000/Put/vlen=4/seqid=11993975 in cf a
        at org.apache.hadoop.hbase.regionserver.StoreScanner.checkScanOrder(StoreScanner.java:794)
        at org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:552)
        at org.apache.hadoop.hbase.regionserver.compactions.Compactor.performCompaction(Compactor.java:287)
        at org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:111)
        at org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:112)
        at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1238)
        at org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:1862)
        at org.apache.hadoop.hbase.regionserver.CompactSplitThread$CompactionRunner.run(CompactSplitThread.java:519)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
{code}

> Cleaned seqid in compaction should set back when write finish.
> --------------------------------------------------------------
>
>                 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
>
> 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 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)