Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.0
    • Fix Version/s: 3.1.0.BETA1, 3.1, EE-3.0.0.GA_P01
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      Windows XP (SP3), Internet Explorer version 7.0.5730.13, Tomcat 7 or Jboss 7.1
    • Assignee Priority:
      P2
    • Workaround Description:
      The problem is not reproducible if you do not refresh page, but instead just switch between tabs. (memory consumption settled down at ~130 Mb during my test).

      Description

      On IE7 (and IE6) sample application slowly leaks memory until it grinds the client to a halt. The issue can be reproduced with the attached simple example. Debugging with sIEve shows that the DOM tree and memory usage keeps increasing without ever garbage collecting.

      Steps to reproduce:
      1. Deploy attached .war on Tomcat 7 or Jboss 7.1 server
      2. Start fresh IE 7 browser session (clear cache, cookies, temporary files etc)
      3. Click tab 2, refresh.
      4. Repeat 10 times
      4. After 10 tab switches the memory consumption of IE7 process would increase up to 1 GB of RAM

      Please note that minimization of the IE7 window will reset memory consumption to a reasonable value.
      There also will be a non-resettable memory increase by about 10 Mb of RAM every time you restore IE7 window after steps 3 and 4 executed.
      It is also worth to mention that when the BlockUIOnSubmit parameter is set to true, refreshes to the page cause a huge jump in memory consumption by IE7 process (~100 mb per single step 3 iteration in my test).

        Activity

        Hide
        Mircea Toma added a comment -

        The memory leak seems to be caused by the event handlers that remain attached after page reload due to some circular reference. The applied fix clears the event handlers on the elements that will most likely create a memory leak. This is done on page unload.

        In my testing the memory will still go up to 250-350Mb (depending on the available memory of the system) in the first 4 iterations then intensively garbage collect. After that the memory consumption will remain around the 130-145Mb.

        Show
        Mircea Toma added a comment - The memory leak seems to be caused by the event handlers that remain attached after page reload due to some circular reference. The applied fix clears the event handlers on the elements that will most likely create a memory leak. This is done on page unload. In my testing the memory will still go up to 250-350Mb (depending on the available memory of the system) in the first 4 iterations then intensively garbage collect. After that the memory consumption will remain around the 130-145Mb.
        Hide
        Mircea Toma added a comment -

        Applied fix to maintenance branch.

        Show
        Mircea Toma added a comment - Applied fix to maintenance branch.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Evgheni Sadovoi
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: