[ 
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}
java.lang.AssertionError: Key 
key167/0:C09/OLDEST_TIMESTAMP/Minimum/vlen=0/seqid=0 followed by a smaller key 
key167/0:C04/1565596231736/Put/vlen=3/seqid=4 in cf 0 at 
org.apache.hadoop.hbase.regionserver.StoreScanner.checkScanOrder(StoreScanner.java:969)
 at 
org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:551) 
at 
org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:150) 
at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:6144)
 at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6307)
 at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6081)
 at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2755)
 at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2957)
 at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:35072)
 at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2394) at 
org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168) {code}
I created a backport patch of -HBASE-19863 and  *HBASE-17958*-.

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.
{code:java}
java.lang.AssertionError: Key 
key167/0:C09/OLDEST_TIMESTAMP/Minimum/vlen=0/seqid=0 followed by a smaller key 
key167/0:C04/1565596231736/Put/vlen=3/seqid=4 in cf 0 at 
org.apache.hadoop.hbase.regionserver.StoreScanner.checkScanOrder(StoreScanner.java:969)
 at 
org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:551) 
at 
org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:150) 
at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:6144)
 at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6307)
 at 
org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6081)
 at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2755)
 at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2957)
 at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:35072)
 at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2394) at 
org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188) at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168) {code}
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 and the store with ROWCOL bloom filter could throw 
> AssertionError (backport of  HBASE-19863)
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-22835
>                 URL: https://issues.apache.org/jira/browse/HBASE-22835
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.3.5
>            Reporter: Jeongmin Kim
>            Priority: Major
>             Fix For: 1.3.6
>
>         Attachments: HBASE-22835.branch-1.3.patch, 
> HBASE-22835.v2.branch-1.3.patch, HBASE-22835.v3.branch-1.3.patch, 
> HBASE-22835.v4.branch-1.3.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}
> java.lang.AssertionError: Key 
> key167/0:C09/OLDEST_TIMESTAMP/Minimum/vlen=0/seqid=0 followed by a smaller 
> key key167/0:C04/1565596231736/Put/vlen=3/seqid=4 in cf 0 at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.checkScanOrder(StoreScanner.java:969)
>  at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:551) 
> at 
> org.apache.hadoop.hbase.regionserver.KeyValueHeap.next(KeyValueHeap.java:150) 
> at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.populateResult(HRegion.java:6144)
>  at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6307)
>  at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6081)
>  at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2755)
>  at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2957)
>  at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:35072)
>  at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2394) at 
> org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123) at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188) at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168) 
> {code}
> I created a backport patch of -HBASE-19863 and  *HBASE-17958*-.
> 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