[ 
https://issues.apache.org/jira/browse/HBASE-22835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeongmin Kim updated HBASE-22835:
---------------------------------
    Description: 
Scan/Get with setColumn and the store with ROWCOL bloom filter could throw 
AssertionError of scan order check.

which is resolved by HBASE-19863 for 1.4, 2.x, or later version.

A same bug exists in branch 1.3 and older, and also my cluster suffered from 
the same problem.

 

When ROWCOL bloomFilter is enabled and fake cell is the prevCell,
 actual hfs offset can be behind, in this case heap.next() is not enough. it 
requires reseek to find right next cell.
{code:java}
Mon Jan 29 19:01:06 UTC 2018, RpcRetryingCaller{globalStartTime=1517252466261, 
pause=250, retries=6}, java.io.IOException: java.io.IOException: Key 
key10018/0:C09/OLDEST_TIMESTAMP/Minimum/vlen=0/seqid=0 followed by a smaller 
key key10018/0:C04/1517252461198/Put/vlen=3/seqid=4 in cf 0
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2412)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
        at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:297)
        at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)
Caused by: java.lang.AssertionError: Key 
key10018/0:C09/OLDEST_TIMESTAMP/Minimum/vlen=0/seqid=0 followed by a smaller 
key key10018/0:C04/1517252461198/Put/vlen=3/seqid=4 in cf 0
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.checkScanOrder(StoreScanner.java:975)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:555)
        at 
org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:152)
        at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:6219)
        at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6379)
        at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6151)
        at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2808)
        at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3045)
        at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36613)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2354)
        ... 3 more
{code}
 

I created a backport patch of HBASE-19863.

Exact same testcase included. And changed StoreScanner due to the difference of 
codes.

  was:
Scan/Get with setColumn and the store with ROWCOL bloom filter could throw 
AssertionError of scan order check.

which is resolved by HBASE-19863 for 1.4, 2.x, or later version.

A same bug exists in branch 1.3 and older, and also my cluster suffered from 
the same problem.

 

When ROWCOL bloomFilter is enabled and fake cell is the prevCell,
 actual hfs offset can be behind, in this case heap.next() is not enough. it 
requires reseek to find right next cell.

 

I created a backport patch of HBASE-19863.

Exact same testcase included. And changed StoreScanner due to the difference of 
codes.


> Scan/Get with setColumn to the store with ROWCOL bloom filter throws 
> AssertionError of scan order check
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-22835
>                 URL: https://issues.apache.org/jira/browse/HBASE-22835
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.2.12, 1.3.5
>            Reporter: Jeongmin Kim
>            Priority: Major
>         Attachments: HBASE-22835.patch
>
>
> Scan/Get with setColumn and the store with ROWCOL bloom filter could throw 
> AssertionError of scan order check.
> which is resolved by HBASE-19863 for 1.4, 2.x, or later version.
> A same bug exists in branch 1.3 and older, and also my cluster suffered from 
> the same problem.
>  
> When ROWCOL bloomFilter is enabled and fake cell is the prevCell,
>  actual hfs offset can be behind, in this case heap.next() is not enough. it 
> requires reseek to find right next cell.
> {code:java}
> Mon Jan 29 19:01:06 UTC 2018, 
> RpcRetryingCaller{globalStartTime=1517252466261, pause=250, retries=6}, 
> java.io.IOException: java.io.IOException: Key 
> key10018/0:C09/OLDEST_TIMESTAMP/Minimum/vlen=0/seqid=0 followed by a smaller 
> key key10018/0:C04/1517252461198/Put/vlen=3/seqid=4 in cf 0
>       at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2412)
>       at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
>       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:297)
>       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)
> Caused by: java.lang.AssertionError: Key 
> key10018/0:C09/OLDEST_TIMESTAMP/Minimum/vlen=0/seqid=0 followed by a smaller 
> key key10018/0:C04/1517252461198/Put/vlen=3/seqid=4 in cf 0
>       at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.checkScanOrder(StoreScanner.java:975)
>       at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:555)
>       at 
> org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:152)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:6219)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6379)
>       at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6151)
>       at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2808)
>       at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3045)
>       at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36613)
>       at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2354)
>       ... 3 more
> {code}
>  
> I created a backport patch of HBASE-19863.
> Exact same testcase included. And changed StoreScanner due to the difference 
> of codes.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to