Bug 19166
Summary: | Back/forward cache causing lots of JavaScript object leaks | ||
---|---|---|---|
Product: | WebKit | Reporter: | Oliver Hunt <oliver> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WORKSFORME | ||
Severity: | Critical | CC: | ap, ggaren, mjs, sam, zwarich |
Priority: | P1 | Keywords: | InRadar |
Version: | 528+ (Nightly build) | ||
Hardware: | Mac | ||
OS: | OS X 10.5 |
Oliver Hunt
Visit any site with significant JS content and SF doesn't GC all objects. It looks like it may be leaking global objects.
Tentatively marking as a merge blocker
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Maciej Stachowiak
My reduction (load this, click the link, close the window):
<a href="about:blank" onkeypress="x()">click</a>
Disabling b/f cache makes the bug go away.
Maciej Stachowiak
Trunk has the same bug.
Mark Rowe (bdash)
<rdar://problem/5954374>
Mark Rowe (bdash)
I cannot reproduce this with r33980.
Adele Peterson
5/21/08 11:20 PM Maciej Stachowiak:
The way I reproduced this originally:
1) Open Caches window
2) Open a new browser window
3) Load the reduction
4) Click the link
5) close the browser window
6) hit the Garbage Collect button in Caches
I see some objects still left, including protected ones.
5/21/08 11:46 PM Adele Peterson:
I haven't been able to reproduce with a debug build, but I did see some objects in a release spade build. But then after a few seconds, if I hit refresh, they go away. Since page cache cleanup happens on a timer, that may explain this bug.
5/22/08 1:22 AM Maciej Stachowiak:
I'm still seeing this bug, but they don't go away after a few minutes.
Cameron Zwarich (cpst)
With a nightly release build, I get the initial leak of 1 DOMWindow and 1 JSDOMWindowShell (there are initially 2 DOMWindow objects, but one gets freed upon closing). However, for me the objects get freed on a timer like they do for Adele.
Cameron Zwarich (cpst)
Do you still see this, Maciej?
Cameron Zwarich (cpst)
Closing to match the Radar. Maciej doesn't see this anymore.