hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Duo Zhang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18221) Switch from pread to stream should happen under HStore's reentrant lock
Date Thu, 22 Jun 2017 10:21:00 GMT

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

Duo Zhang commented on HBASE-18221:
-----------------------------------

{quote}
Do you have any other better to work aroud this?
{quote}

I think this is another issue and should not block this issue. [~anoop.hbase] has already
opened several issues to track the problem. We can discuss there. For me I think we can use
HStore directly in our own code to prevent exposing everything in Store interface.

Thanks.

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

Mime
View raw message