Lars Hofhansl created HBASE-26812:
-------------------------------------

             Summary: 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


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 
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 a GC of death.

The reason appears to be that in this case there is 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)

Reply via email to