Chris Drome created HIVE-13754:
----------------------------------

             Summary: Fix resource leak in HiveClientCache
                 Key: HIVE-13754
                 URL: https://issues.apache.org/jira/browse/HIVE-13754
             Project: Hive
          Issue Type: Bug
          Components: Clients
    Affects Versions: 2.0.0, 1.2.1
            Reporter: Chris Drome
            Assignee: Chris Drome


Found that the {{users}} reference count can go into negative values, which 
prevents {{tearDownIfUnused}} from closing the client connection when called.
This leads to a build up of clients which have been evicted from the cache, are 
no longer in use, but have not been shutdown.
GC will eventually call {{finalize}}, which forcibly closes the connection and 
cleans up the client, but I have seen as many as several hundred open client 
connections as a result.

The main resource for this is caused by RetryingMetaStoreClient, which will 
call {{reconnect}} on acquire, which calls {{close}}. This will decrement 
{{users}} to -1 on the reconnect, then acquire will increase this to 0 while 
using it, and back to -1 when it releases it.



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

Reply via email to