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

ramkrishna.s.vasudevan commented on HBASE-16737:
------------------------------------------------

I think you have some phoenix coprocessor also. That lease removal is to ensure 
that the scanner lease expiry does occur while scan is in process.
The scanner does not return any cell on peeking and that causes this NPE. But 
why scanners are not returning a cell is something to see. It could be because 
of the region observer logic also. 


> 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)

Reply via email to