hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Christiaens (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16737) NPE during close of RegionScanner
Date Fri, 30 Sep 2016 09:02:20 GMT

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

Mark Christiaens commented on HBASE-16737:
------------------------------------------

I suspect that this ticket is related to HBASE-2077.  Looking at the code of {{org.apache.hadoop.hbase.regionserver.RSRpcServices#scan}},
you see that during normal operation of the scan, the {{lease}} is removed and added again
once the scan is completed.
{noformat}
...
lease = regionServer.leases.removeLease(scannerName);
...
if (lease != null) regionServer.leases.addLease(lease);
...
{noformat}
However, the {{scanner.close()}} call occurs after re-instating the lease.

> NPE during close of RegionScanner
> ---------------------------------
>
>                 Key: HBASE-16737
>                 URL: https://issues.apache.org/jira/browse/HBASE-16737
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 1.0.0
>            Reporter: Mark Christiaens
>
> We encountered the following stack trace during high load:
> {noformat}
> Unexpected throwable object 
> java.lang.NullPointerException
> 	at org.apache.hadoop.hbase.CellComparator.compareRows(CellComparator.java:186)
> 	at org.apache.hadoop.hbase.CellComparator.compare(CellComparator.java:63)
> 	at org.apache.hadoop.hbase.KeyValue$KVComparator.compare(KeyValue.java:2021)
> 	at org.apache.hadoop.hbase.regionserver.KeyValueHeap$KVScannerComparator.compare(KeyValueHeap.java:202)
> 	at org.apache.hadoop.hbase.regionserver.KeyValueHeap$KVScannerComparator.compare(KeyValueHeap.java:178)
> 	at org.apache.hadoop.hbase.regionserver.KeyValueHeap$KVScannerComparator.compare(KeyValueHeap.java:168)
> 	at java.util.PriorityQueue.siftDownUsingComparator(PriorityQueue.java:719)
> 	at java.util.PriorityQueue.siftDown(PriorityQueue.java:687)
> 	at java.util.PriorityQueue.poll(PriorityQueue.java:595)
> 	at org.apache.hadoop.hbase.regionserver.KeyValueHeap.close(KeyValueHeap.java:218)
> 	at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.close(HRegion.java:5608)
> 	at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$2.close(BaseScannerRegionObserver.java:279)
> 	at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$1.close(BaseScannerRegionObserver.java:186)
> 	at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2378)
> 	at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32205)
> 	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2034)
> 	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
> 	at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
> 	at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
> 	at java.lang.Thread.run(Thread.java:745)
> {noformat}
> What I suspect is happening is that the {{RegionScannerImpl}} is being closed while the
scanner's lease is expired.  During this close, the underlying {{KeyValueHeap}} is being polled.
 the {{heap}} tries to read data from {{KeyValueScanners}} that then return {{null}} which
causes the crash.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message