Metadata
- Source
- FLUID-6371
- Type
- Bug
- Priority
- Major
- Status
- Closed
- Resolution
- Fixed
- Assignee
- Antranig Basman
- Reporter
- Antranig Basman
- Created
2019-03-21T10:50:55.379-0400 - Updated
2024-07-19T08:06:14.525-0400 - Versions
- N/A
- Fixed Versions
- N/A
- Component
-
- Framework
Description
Testing with the GPII cloud-based flow manager at https://issues.gpii.net/browse/GPII-3766 suggested a slow but persistent leak associated with request handling. Investigating with the heap inspector revealed a few pseudo-leaks in fluid.makeInvoker which will leak the most recently used arguments list. These are an annoyance in the heap inspector but not the cause of the true leak since they can't accumulate over time.
However, there is a genuine leak in fluid.registerDynamicRecord - https://github.com/fluid-project/infusion/blob/master/src/framework/core/js/FluidIoC.js#L679 which constructs an entry in the parent's "options.components" record for each contructed dynamic component, which is not cleared up. The heap inspector showed that this will leak 272 bytes per component which is broadly consistent with the observed rate of leakage.
Whilst the options records may be useful for introspection during the lifetime of the component, they should be cleared up on destruction.
Comments
-
Cindy Li commented
2019-03-28T10:44:03.554-0400 The pull request has been merged into the project repo at this commit.