You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Bryan Bende (JIRA)" <ji...@apache.org> on 2018/05/01 13:56:00 UTC

[jira] [Created] (NIFI-5136) Leaked component references preventing GC of components and class loaders

Bryan Bende created NIFI-5136:
---------------------------------

             Summary: Leaked component references preventing GC of components and class loaders
                 Key: NIFI-5136
                 URL: https://issues.apache.org/jira/browse/NIFI-5136
             Project: Apache NiFi
          Issue Type: Bug
    Affects Versions: 1.6.0, 1.5.0, 1.4.0, 1.3.0, 1.2.0
            Reporter: Bryan Bende
            Assignee: Bryan Bende


A user on the mailing list reported that after some time of creating/deleting HDFS processors, it appeared that the classes/instances were still around and eventually the NiFi instance would get out of memory and need to be restarted.

After investigation there are multiple issues preventing garbage collection of deleted components. One issue is specific to the HDFS processors, the other issues are for all components...

1) The LogRepository still has a reference to a ComponentLogger which has a reference to the component

2) The processor scheduler has a map of scheduled states which has references to processors that have been deleted

3) The Hadoop processors start a thread that is never stopped when the processor is stopped/deleted, this means the class loader can't be cleaned up b/c the Runnable came from the InstanceClassLoader of the deleted processor

4) Importing a flow from registry will instantiate an instance of each component to ensure the incoming types are valid, but the InstanceClassLoader and ComponentLogger are not cleaned up for these temp instances

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)