You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Anver Sotnikov (Jira)" <ji...@apache.org> on 2020/10/16 14:22:00 UTC

[jira] [Created] (SOLR-14940) ReplicationHandler memory leak through SolrCore.closeHooks

Anver Sotnikov created SOLR-14940:
-------------------------------------

             Summary: ReplicationHandler memory leak through SolrCore.closeHooks
                 Key: SOLR-14940
                 URL: https://issues.apache.org/jira/browse/SOLR-14940
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: replication (java)
         Environment: Solr Cloud Cluster on v.8.6.2 configured as 3 TLOG nodes with 2 cores in each JVM.

 
            Reporter: Anver Sotnikov


We are experiencing a memory leak in Solr Cloud cluster configured as 3 TLOG nodes.

Leader does not seem to be affected while Followers are.

 

Looking at memory dump we noticed that SolrCore holds lots of references to ReplicationHandler through anonymous inner classes in SolrCore.closeHooks, which in turn holds ReplicationHandlers.

ReplicationHandler registers hooks as anonymous inner classes in SolrCore.closeHooks through ReplicationHandler.inform() -> ReplicationHandler.registerCloseHook().

 

Whenever ZkController.stopReplicationFromLeader is called - it would shutdown ReplicationHandler (ReplicationHandler.shutdown()), BUT reference to ReplicationHandler will stay in SolrCore.closeHooks. Once replication is started again on same SolrCore - new ReplicationHandler will be created and registered in closeHooks.

 

It looks like there are few scenarios when replication is stopped and restarted on same core and in our TLOG setup it shows up quite often.

 

Potential solutions:
 # Allow unregistering SolrCore.closeHooks so it can be used from ReplicationHandler.shutdown
 # Hack but easier - break the link between ReplicationHandler close hooks and full ReplicationHandler object so ReplicationHandler can be GCed even when hooks are still registered in SolrCore.closeHooks



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org