You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "chenglei (Jira)" <ji...@apache.org> on 2022/04/01 02:50:00 UTC

[jira] [Comment Edited] (HBASE-26812) ShortCircuitingClusterConnection fails to close RegionScanners when making short-circuited calls

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

chenglei edited comment on HBASE-26812 at 4/1/22 2:49 AM:
----------------------------------------------------------

Pushed to 2.4,2.5 and 2.6, thanks [~larsh] for reviewing and verifying.


was (Author: comnetwork):
Pushed to 2.4,2.5 and 2.6, thanks [~larsh] for review and verify.

> ShortCircuitingClusterConnection fails to close RegionScanners when making short-circuited calls
> ------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-26812
>                 URL: https://issues.apache.org/jira/browse/HBASE-26812
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.4.9
>            Reporter: Lars Hofhansl
>            Assignee: chenglei
>            Priority: Critical
>             Fix For: 2.5.0, 2.6.0, 2.4.12
>
>
> Just ran into this on the Phoenix side.
> We retrieve a Connection via {{{}RegionCoprocessorEnvironment.createConnection... getTable(...){}}}. And then call get on that table. The Get's key happens to be local. Now each call to table.get() leaves an open StoreScanner around forever. (verified with a memory profiler).
> There references are held via RegionScannerImpl.storeHeap.scannersForDelayedClose. Eventially the RegionServer goes into a GC of death and can only ended with kill -9.
> The reason appears to be that in this case there is no currentCall context. Some time in 2.x the Rpc handler/call was made responsible for closing open region scanners, but we forgot to handle {{ShortCircuitingClusterConnection}}
> It's not immediately clear how to fix this. But it does make ShortCircuitingClusterConnection useless and dangerous. If you use it, you *will* create a giant memory leak.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)