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)