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)