[
https://issues.apache.org/jira/browse/HBASE-18221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ramkrishna.s.vasudevan updated HBASE-18221:
-------------------------------------------
Resolution: Fixed
Hadoop Flags: Reviewed
Status: Resolved (was: Patch Available)
Pushed to branch-2 and master. Thanks for the reviews.
> Switch from pread to stream should happen under HStore's reentrant lock
> -----------------------------------------------------------------------
>
> Key: HBASE-18221
> URL: https://issues.apache.org/jira/browse/HBASE-18221
> Project: HBase
> Issue Type: Sub-task
> Components: Scanners
> Affects Versions: 2.0.0, 3.0.0, 2.0.0-alpha-1
> Reporter: ramkrishna.s.vasudevan
> Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0, 3.0.0, 2.0.0-alpha-2
>
> Attachments: HBASE-18221_2_fortestcasefailure.patch,
> HBASE-18221_2.patch, HBASE-18221_2.patch
>
>
> Found this while debugging HBASE-18186. When we try to reopen the scanners on
> the storefiles while trying to switch over from pread to stream, we do not
> use the HStore's reentrant lock to get the current Storefiles from the
> StoreFileManager. All the scan APIs are guarded under that and we must do it
> here also other wise the CompactedHfileDischarger may cause race issues with
> the HStore's datastructures like here
> {code}
> 2017-06-14 18:16:17,223 WARN
> [RpcServer.default.FPBQ.Fifo.handler=23,queue=1,port=16020]
> regionserver.StoreScanner: failed to switch to stream read
> java.lang.NullPointerException
> at
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.getScannersForStoreFiles(StoreFileScanner.java:133)
> at
> org.apache.hadoop.hbase.regionserver.HStore.getScanners(HStore.java:1221)
> at
> org.apache.hadoop.hbase.regionserver.StoreScanner.trySwitchToStreamRead(StoreScanner.java:997)
> at
> org.apache.hadoop.hbase.regionserver.StoreScanner.shipped(StoreScanner.java:1134)
> at
> org.apache.hadoop.hbase.regionserver.KeyValueHeap.shipped(KeyValueHeap.java:445)
> at
> org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.shipped(HRegion.java:6459)
> at
> org.apache.hadoop.hbase.regionserver.RSRpcServices$RegionScannerShippedCallBack.run(RSRpcServices.java:339)
> at
> org.apache.hadoop.hbase.ipc.ServerCall.setResponse(ServerCall.java:252)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:166)
> at
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:278)
> at
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:258)
> {code}
> I have a working patch fixing this problem. Will do some more testing and try
> to upload the patch after I write a test case for this.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)