Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-8054

When components are removed from flow, their class loaders are not cleaned up

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.13.0
    • Core Framework
    • None

    Description

      When a component is removed from the flow, its corresponding classes/classloaders are not removed from the JVM's count of loaded classes. This can be seen by creating a Process Group with several processors that use the @RequiresInstanceClassLoading annotation (GetHDFS, for example). Then use a profiler/JConsole/etc. to see how many classes are loaded into memory. After the Process Group is deleted and GC is performed, the number of classes loaded should drop significantly. Currently, it does not. So if instantiate a template, delete the Process Group, instantiate it again, delete it again, etc. then I get into a situation where I run out of memory and see OutOfMemoryError: GC overhead limit exceeded.

      Attachments

        Issue Links

          Activity

            People

              markap14 Mark Payne
              markap14 Mark Payne
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m