ICEfaces
  1. ICEfaces
  2. ICE-6593

Apparent client-side memory leak when using modal panelPopup with IE8

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0
    • Fix Version/s: 2.0.1
    • Component/s: Bridge, ICE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 2.0, panelPopup w/ modal=true, IE8.

      Description

      Viewing a modal panelPopup in IE8 browser seems to consume a large amount of client-side memory (in the IE8 process) that is not subsequently released until the page is reloaded or navigated away from.

      To reproduce, run the compat component showcase, monitor the IE8 browser process memory consumption, then open and close the modal panelPopup repeatedly. Note that each toggling of making the popup visible and hiding it consumes approx 5-6 MB of client-side memory.

      The consumed memory doesn't seem to be recovered by IE8 until the page is navigated away from or reloaded. I tested it up to 225MB used on a 512MB system so this looks like a real issue.

      Likely related to the way that the UI blocker has to dynamically deregister and re-register the event listeners on elements behind the popup blocker.

        Activity

        Ken Fyten created issue -
        Ken Fyten made changes -
        Field Original Value New Value
        Salesforce Case []
        Assignee Priority P1
        Assignee Mircea Toma [ mircea.toma ]
        Hide
        Ken Fyten added a comment -

        Testing on IE7 shows the same memory consumption while viewing modal popups, but that memory is recovered when the browser window is minimized, indicating that it is not an actual leak, but normal browser memory use that is available for reclamation by the browser when needed.

        However, my testing on IE8 did not show the memory being recovered until the page was reloaded (or closed).

        Show
        Ken Fyten added a comment - Testing on IE7 shows the same memory consumption while viewing modal popups, but that memory is recovered when the browser window is minimized, indicating that it is not an actual leak, but normal browser memory use that is available for reclamation by the browser when needed. However, my testing on IE8 did not show the memory being recovered until the page was reloaded (or closed).
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23986 Tue Feb 22 07:20:51 MST 2011 mircea.toma ICE-6593 Discard callbacks used to resize dynamically the overlay thus freeing up any references to the iframe used as the overlay.
        Files Changed
        Commit graph MODIFY /icefaces2/trunk/icefaces/compat/core/src/main/javascript/extras/extras.js
        Hide
        Mircea Toma added a comment - - edited

        The callbacks used to resize dynamically the overlay registered with window.onresize and window.onscroll are not cleared after the overlay is removed from the document thus references to the iframe element are still held.
        The applied fix makes sure the callbacks are de-registered before the overlay is gone.

        Show
        Mircea Toma added a comment - - edited The callbacks used to resize dynamically the overlay registered with window.onresize and window.onscroll are not cleared after the overlay is removed from the document thus references to the iframe element are still held. The applied fix makes sure the callbacks are de-registered before the overlay is gone.
        Mircea Toma made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Ken Fyten added a comment -

        I verified this using IE8. Memory continued to increase (although perhaps 1/2 the rate it did previously). Once IE8 was using 410M in a 512MB XP system, it garbage collected and reduced it's use back down to 70MB approx., so this seems to be working.

        Show
        Ken Fyten added a comment - I verified this using IE8. Memory continued to increase (although perhaps 1/2 the rate it did previously). Once IE8 was using 410M in a 512MB XP system, it garbage collected and reduced it's use back down to 70MB approx., so this seems to be working.
        Ken Fyten made changes -
        Assignee Priority P1
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Ken Fyten
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: