Open Bug 860482 Opened 12 years ago Updated 2 years ago

Leak with document navigation, iframes, fragments

Categories

(Core :: DOM: Navigation, defect)

x86_64
macOS
defect

Tracking

()

People

(Reporter: jruderman, Unassigned)

Details

(Keywords: memory-leak, regression, testcase, Whiteboard: [MemShrink:P2])

Attachments

(2 files)

1. XPCOM_MEM_LEAK_LOG=2 firefox nav-leak.html (or otherwise load the testcase as the first item in a tab) 2. Quit Firefox Trace-refcnt reports leaked nsDocShell, nsDocument, nsGlobalWindow. This seems to be a regression from http://hg.mozilla.org/mozilla-central/rev/b695e94363b5 (bug 825544). Which is fun because all that did was back out bug 754029 and its followups. I haven't checked whether the new patch in bug 754029 fixes this leak.
Attachment #735968 - Attachment description: testcase (must be loaded as the first in a tab) → testcase (must be local; must be loaded as the first in a tab)
(In reply to Jesse Ruderman from comment #0) > I haven't checked whether the new patch in bug 754029 fixes this leak. The new one also seem to (superficially) fix the mlk in my tree. However, attachment 735968 [details] contains several problematic factors in addition to mlk. Is this intended behavior?
I felt the same way. Why does the final "window.history.back();" cause the entire testcase to reload, rather than just affecting the frame or at most the main doc's hash?
(In reply to Jesse Ruderman from comment #2) > I felt the same way. Why does the final "window.history.back();" cause the > entire testcase to reload, rather than just affecting the frame or at most > the main doc's hash? Maybe the initial session history entry doesn't have bfcache/scroll-position because loading hasn't finished on #hash change.
Keywords: csec-disclosure
My DOM fuzzer will ignore leaks with frames or history until this is fixed.
Whiteboard: [MemShrink]
... except when it outsmarts me, like it did with bug 886213.
Olli, care to take a look? :)
Whiteboard: [MemShrink] → [MemShrink:P2]
Assignee: nobody → bugs
(I have been debugging this, but haven't found the cause yet.)
Still leaks on trunk. Prevents me from checking for leaks in testcases that use frames, history, or <object>.
Whiteboard: [MemShrink:P2] → [MemShrink:P2][fuzzblocker:leaks]
Assignee: bugs → continuation
I'm using DMD heap scanning to investigate this. I found the first problem: nsGlobalWindow::mLocation is not reported to the cycle collector. This alone, however, does not fix the leak.

I should look at this again at some point. FWIW, nsGlobalWindowInner::mLocation is now being reported to the CC.

Unfortunately I haven't had time to look at this recently. I'll clear the fuzzblocker tag as I don't think whatever old fuzzing effort that was for is happening anyways.

Assignee: continuation → nobody
Whiteboard: [MemShrink:P2][fuzzblocker:leaks] → [MemShrink:P2]
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: