[ https://issues.apache.org/jira/browse/NIFI-5136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16459878#comment-16459878 ]
ASF GitHub Bot commented on NIFI-5136: -------------------------------------- Github user ottobackwards commented on a diff in the pull request: https://github.com/apache/nifi/pull/2668#discussion_r185277171 --- Diff: nifi-nar-bundles/nifi-extension-utils/nifi-hadoop-utils/src/main/java/org/apache/nifi/processors/hadoop/AbstractHadoopProcessor.java --- @@ -257,9 +260,63 @@ public final void abstractOnScheduled(ProcessContext context) throws IOException @OnStopped public final void abstractOnStopped() { --- End diff -- Is there anything common to other processors here? Are we going to end up pointing other processors with this problem, one after another to this code? > 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.2.0, 1.3.0, 1.4.0, 1.5.0, 1.6.0 > Reporter: Bryan Bende > Assignee: Bryan Bende > Priority: Major > > 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)