Client-side memory leaks in IE8

Dear Vaadin community,

We’ve encountered a very tenacious problem when our Vaadin-based application is accessed by a client using Internet Explorer 8.

Switching part of the view back and forth between too layouts will result the memory usage of IE8 to gradually increase. This memory is never released, even if we browse away from the application to a completely different web site. Apparently, DOM references are not being destroyed by the browser. The memory is not released until the entire browser is closed.

This issue can be reproduced by browsing to the
Vaadin Sampler
and then randomly selecting items in the tree to the left. Keep doing this for a while. After about 30 or 40 minutes, you will notice iexplore.exe taking up some 140MB. Then, navigate from the sampler page (in the same window and tab) to “about:blank” or google.com or some other simple uncluttered site, and you will notice that most of that 140MB is not released, but the browser holds on to that memory until you quit the entire browser.

In our application, the same problem is much more severe, and after a certain period of use it actually causes IE8 to crash.

Even after having installed SP3 in Windows XP, as well as all of the cumulative security updates for Internet Explorer 8, this problem persists.

We’ve been searching high and low for a solution or workaround, but unfortunately, we haven’t been able to find any. We’re at a loss.

Can anyone please help us find a solution or workaround?

It would be much appreciated. Thank you in advance.

I am not surprised to hear that there is some kind of memory leak in the famously leaky older versions of Internet Explorer. Such leaks are unfortunately quite hard to pinpoint, though that’s not an excuse to not try… Any clues regarding which components or settings cause or don’t cause leaks could be helpful.

Could you please file at ticket at
http://dev.vaadin.com
with all the relevant details?

We are currently trying to isolate the components causing the leaks as much as possible.

We will open a ticket as soon as we have some more specific findings.

Thank you for your response so far. Any further help and suggestions are of course still much appreciated.

I’m not sure how Vaadin handles circular references on the client side but GWT in general has this under control (according to them anyways):

http://code.google.com/p/google-web-toolkit/wiki/DomEventsAndMemoryLeaks

Wonder if Vaadin client side engine has some extensions which violate these rules.