Project

General

Profile

Bug #2396

memory leak when using shared frames

Added by Greg Shah over 9 years ago. Updated over 7 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:

Related issues

Related to User Interface - Feature #1791: implement dynamic UI support Closed 02/21/2013 11/08/2013

History

#1 Updated by Greg Shah over 9 years ago

In #1791 we found that using shared frames results in a memory leak because we never fully remove shared frames from the LogicalTerminal.widgetRegistry once they are created.

The obvious place to remove them is in LT.releaseSharedFrame(), which is the only way that shared frames actually "go away" permanently (since LT.deregisterFrameInt() doesn't remove shared frames from the widgetRegistry). But since LT.releaseSharedFrame() is only called from inside GenericFrame.createSharedFrame(), this means that we only permanently dispose of a shared frame when we create a new shared frame of the same name. This suggests that we have a memory leak, since there seems to be no particular point in time when we otherwise clear shared frames out.

We do know that we must leave these frames around until the creating external procedure exits, as we introduce regressions when we try to otherwise remove them earlier. We can potentially use the TransactionManager for notification of the exit of the external procedure, however we need to properly handle the case of persistent procedures (where the external proc ends but holds resources in memory until the procedure is deleted).

#2 Updated by Greg Shah over 9 years ago

  • Target version set to Milestone 17

#3 Updated by Greg Shah over 7 years ago

  • Target version changed from Milestone 17 to Performance and Scalability Improvements

Also available in: Atom PDF