IE11 leaks memory when releasing blobs

By design Issue #7409348

Details

Author
Mattias B.
Created
May 2, 2016
Privacy
This issue is public.
Found in
  • Internet Explorer
Found in build #
11
Reports
Reported by 3 people

Sign in to watch or report this issue.

Steps to reproduce

Internet Explorer 11 appears to leak memory when releasing blobs created from JavaScript code. The memory allocated for some blobs is never completely reclaimed. This is a serious problem when a page needs to regularly create temporary blobs, as the page will over time run out of memory and possibly crash with an OOM exception.

The attached web page contains code to demonstrate the problem. At start up, a single Uint8Array is allocated and kept in a global variable. The run function repeatedly creates a Blob from this byte array, and immediately calls Blob.close (or the prefixed Blob.msClose) to release the created blob. The run function can be triggered manually with the “Run now” button, or can be run periodically with the “Run every 5 seconds” checkbox.

Experiment setup

  1. Take a heap snapshot after the page loads using the F12 tools
  2. Inspect the page’s current memory usage
  3. Check the “Run every 5 seconds” checkbox to start running the test periodically
  4. Let the test run 10 times
  5. Uncheck the checkbox to stop the test
  6. Take another heap snap shot
  7. Inspect the page’s current memory usage again

Expected results

  • The page’s memory usage after the experiment is roughly equal to the memory usage before the experiment
  • The size of the JavaScript heap after the experiment is roughly equal to the size before the experiment

Actual results

  • The page’s memory usage after the experiment is much larger than before the experiment
  • The size of the JavaScript heap after the experiment is roughly equal to the size before the experiment

See the attached screenshot for a more detailed overview of the memory usage over time. Edge is used as baseline for the comparison, as it does not appear to have this problem. IE11 is on the left, Edge is on the right.

  • Both browsers start at roughly equal memory usage: 46 MB for IE11, 47 MB for Edge
  • During the experiment, IE11’s memory usage keeps increasing over time, peaking at ~247 MB near the end. On the other hand, Edge’s memory usage never exceeds ~120 MB.
  • After the experiment, Edge’s memory usage falls back to 47 MB - indicating that all memory from the blobs created during the test was properly released. IE11’s memory usage remains at 138 MB - indicating that not all memory was released.
  • In both browsers, the JavaScript heap before and after the experiment is roughly equal. This would mean that the memory leak in IE11 is not due to leaked variables in the JavaScript code.

System information

Windows 10 Pro 64-bit version 10586.218
Internet Explorer version 11.212.10586.0 - Update 11.0.30
Edge version 25.10586.0.0

Attachments

Comments and activity

  • Hello,
    Thank you for providing your feedback on IE11.

    We are not accepting feedback on Internet Explorer through this portal any longer (unless security related). We welcome any feedback you have on Microsoft Edge using this website. This item will be closed as By Design since IE feature bugs are not being worked unless security related.

    All the best,
    The MS Edge Team

  • Microsoft Edge Team

    Changed Status to “By design”

  • Thanks for the quick response.

    If I understand correctly, Microsoft will only fix security-related bugs for Internet Explorer 11?

    Does this also apply to Windows 7, 8 and 8.1 where there is no Microsoft Edge? This leak occurs on all platforms with IE11, it’s not specific to Windows 10. And as much as I would like to, I cannot tell my company’s customers that they have to use a different browser.

  • I guess this FAQ entry answers my question: security updates only. Very unfortunate, since this issue has a serious impact on our product.

  • Yes, that is correct. Sorry for the delay and apologies for the inconvenience this causes to your development efforts.

    Best regards,
    MS Edge Team

You need to sign in to your Microsoft account to add a comment.

Sign in