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

Jingcheng Du commented on HBASE-16012:
--------------------------------------

bq. Yes, it should close the store scanner, too. But there are 
additionalScanners when initialize RegionScanner. I am not sure whether should 
close these additionalScanners. Current code in master branch never use 
additionalScanners and it always is null.
When the region scanner is closed, the additionalScanners are closed too, I 
guess it is okay to close them when exceptions occur. Any thoughts on this 
change guys?
And the heaps have to be closed if they are not empty/null, otherwise close all 
the store scanners?


> Major compaction can't work because left scanner read point in RegionServer
> ---------------------------------------------------------------------------
>
>                 Key: HBASE-16012
>                 URL: https://issues.apache.org/jira/browse/HBASE-16012
>             Project: HBase
>          Issue Type: Bug
>          Components: Compaction, Scanners
>    Affects Versions: 2.0.0, 0.94.27
>            Reporter: Guanghao Zhang
>             Fix For: 2.0.0
>
>         Attachments: HBASE-16012-v1.patch, HBASE-16012.patch
>
>
> When new RegionScanner, it will add a scanner read point in 
> scannerReadPoints. But if we got a exception after add read point, the read 
> point will keep in regions server and the delete after this mvcc number will 
> never be compacted.
> Our hbase version is base 0.94. If it throws other exception when initialize 
> RegionScanner, the master branch has this bug, too.
> ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: Failed openScanner 
> java.io.IOException: Could not seek StoreFileScanner
>   at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:160)
>   at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:268)
>   at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.<init>(StoreScanner.java:168)
>   at org.apache.hadoop.hbase.regionserver.Store.getScanner(Store.java:2232)
>   at 
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.<init>(HRegion.java:4026)
>   at 
> org.apache.hadoop.hbase.regionserver.HRegion.instantiateRegionScanner(HRegion.java:1895)
>   at 
> org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1879)
>   at 
> org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1854)
>   at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.internalOpenScanner(HRegionServer.java:3032)
>   at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.openScanner(HRegionServer.java:2995)
>   at sun.reflect.GeneratedMethodAccessor67.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>   at java.lang.reflect.Method.invoke(Method.java:597)
>   at 
> org.apache.hadoop.hbase.ipc.SecureRpcEngine$Server.call(SecureRpcEngine.java:338)
>   at 
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1595)
> Caused by: org.apache.hadoop.hbase.ipc.CallerDisconnectedException: Aborting 
> call openScanner, since caller disconnected
>   at 
> org.apache.hadoop.hbase.ipc.HBaseServer$Call.throwExceptionIfCallerDisconnected(HBaseServer.java:475)
>   at 
> org.apache.hadoop.hbase.io.hfile.HFileBlock$AbstractFSReader.readAtOffset(HFileBlock.java:1443)
>   at 
> org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderV2.readBlockDataInternal(HFileBlock.java:1902)
>   at 
> org.apache.hadoop.hbase.io.hfile.HFileBlock$FSReaderV2.readBlockData(HFileBlock.java:1766)
>   at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.readBlock(HFileReaderV2.java:345)
>   at 
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:254)
>   at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.seekTo(HFileReaderV2.java:499)
>   at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2$AbstractScannerV2.seekTo(HFileReaderV2.java:520)
>   at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seekAtOrAfter(StoreFileScanner.java:235)
>   at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:148)
>   ... 14 more



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

Reply via email to