Closed Bug 399758 Opened 17 years ago Closed 17 years ago

Memory leak at About: window due to cycle collector fault

Categories

(Core :: XPCOM, defect)

x86
macOS
defect
Not set
minor

Tracking

()

RESOLVED FIXED

People

(Reporter: gkw, Assigned: peterv)

Details

(Keywords: memory-leak)

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7 Build Identifier: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.9a9pre) Gecko/2007101304 Minefield/3.0a9pre A memory leak occurred after using Minefield latest nightly, following steps below: Reproducible: Sometimes Steps to Reproduce: 1. Start Minefield. 2. Click About Minefield. 3. Click credits, then the Friends link. A new window should open up and Friends of Firefox opens and loads. 4. Press apple-w to close tab (but blank window still remains). 5. Press apple-~ once to shift focus to about: window, which by now should be scrolling down the name list 6. Press apple-q then enter to close Minefield. leak-gauge.pl reports leaks occurred. Actual Results: Leaked inner window 1eacc1f0 (outer 1ea56c10) at address 1eacc1f0. ... with URI "about:blank". Leaked outer window 1ea0af90 at address 1ea0af90. Leaked outer window 172d2de0 at address 172d2de0. Leaked outer window 1f1eff20 at address 1f1eff20. Leaked inner window 1dd0430 (outer 16c11c70) at address 1dd0430. ... with URI "chrome://browser/content/hiddenWindow.xul". Leaked outer window 16c11c70 at address 16c11c70. Leaked inner window 1ea0e4f0 (outer 1ea0af90) at address 1ea0e4f0. ... with URI "about:blank". Leaked inner window 1e132f80 (outer 172d2de0) at address 1e132f80. ... with URI "http://www.mozilla.org/projects/minefield/". Leaked inner window 16c31ec0 (outer 16c2e140) at address 16c31ec0. ... with URI "about:blank". Leaked outer window 1ea56c10 at address 1ea56c10. Leaked outer window 1ea46530 at address 1ea46530. Leaked outer window 16c2e140 at address 16c2e140. Leaked inner window 1edf98a0 (outer 1f1eff20) at address 1edf98a0. ... with URI "about:blank". Leaked inner window 1ed953c0 (outer 1ea46530) at address 1ed953c0. ... with URI "chrome://browser/content/credits.xhtml". Leaked document at address 172ef020. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/textbox.xml". ... with URI "chrome://global/content/bindings/textbox.xml". Leaked document at address 172a1cd0. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/tabbox.xml". ... with URI "chrome://global/content/bindings/tabbox.xml". Leaked document at address 1a72b5b0. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/platformHTMLBindings.xml". ... with URI "chrome://global/content/platformHTMLBindings.xml". Leaked document at address 172e6830. ... with URI "chrome://global/content/bindings/progressmeter.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/progressmeter.xml". Leaked document at address 21d0600. Leaked document at address 228ae00. Leaked document at address 172d5110. ... with URI "chrome://global/content/bindings/findbar.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/findbar.xml". Leaked document at address 2445600. ... with URI "http://www.mozilla.org/projects/minefield/". Leaked document at address 16cb4af0. ... with URI "chrome://global/content/bindings/stringbundle.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/stringbundle.xml". Leaked document at address 1a7014d0. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/browser.jar!/content/browser/places/toolbar.xml". ... with URI "chrome://browser/content/places/toolbar.xml". Leaked document at address 1a717be0. ... with URI "chrome://browser/skin/browser.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/classic.jar!/skin/classic/browser/browser.xml". Leaked document at address 24e5c00. Leaked document at address 17288a10. ... with URI "chrome://browser/content/tabbrowser.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/browser.jar!/content/browser/tabbrowser.xml". Leaked document at address 17275c60. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/text.xml". ... with URI "chrome://global/content/bindings/text.xml". Leaked document at address 1ea36850. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/dialog.xml". ... with URI "chrome://global/content/bindings/dialog.xml". Leaked document at address 16cfc000. ... with URI "chrome://browser/content/places/menu.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/browser.jar!/content/browser/places/menu.xml". Leaked document at address 1724d5a0. ... with URI "chrome://browser/content/urlbarBindings.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/browser.jar!/content/browser/urlbarBindings.xml". Leaked document at address 16cce510. ... with URI "chrome://global/content/bindings/general.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/general.xml". Leaked document at address 17268b60. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/tree.xml". ... with URI "chrome://global/content/bindings/tree.xml". Leaked document at address 2505000. Leaked document at address 248e400. Leaked document at address 16c1a6d0. ... with URI "chrome://global/content/bindings/button.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/button.xml". Leaked document at address 1db8d90. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/checkbox.xml". ... with URI "chrome://global/content/bindings/checkbox.xml". Leaked document at address 1724e430. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/autocomplete.xml". ... with URI "chrome://global/content/bindings/autocomplete.xml". Leaked document at address 16cb7a60. ... with URI "chrome://global/content/bindings/toolbar.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/toolbar.xml". Leaked document at address 16ca9d30. ... with URI "chrome://global/content/bindings/popup.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/popup.xml". Leaked document at address 16c2fab0. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/toolbarbutton.xml". ... with URI "chrome://global/content/bindings/toolbarbutton.xml". Leaked document at address 1727bb00. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/scrollbar.xml". ... with URI "chrome://global/content/bindings/scrollbar.xml". Leaked document at address 232ae00. ... with URI "about:blank". Leaked document at address 2023200. ... with URI "chrome://browser/content/credits.xhtml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/browser.jar!/content/browser/credits.xhtml". Leaked document at address 172ca670. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/browser.xml". ... with URI "chrome://global/content/bindings/browser.xml". Leaked document at address 17284220. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/splitter.xml". ... with URI "chrome://global/content/bindings/splitter.xml". Leaked document at address 16cc2270. ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/menu.xml". ... with URI "chrome://global/content/bindings/menu.xml". Leaked document at address 16c5b0c0. ... with URI "chrome://global/content/bindings/scrollbox.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/scrollbox.xml". Leaked document at address 172c3f00. ... with URI "chrome://global/content/bindings/notification.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/toolkit.jar!/content/global/bindings/notification.xml". Leaked document at address 1a7390f0. ... with URI "chrome://browser/content/search/search.xml". ... with URI "jar:file:///Applications/Minefield.app/Contents/MacOS/chrome/browser.jar!/content/browser/search/search.xml". Summary: Leaked 14 out of 23 DOM Windows Leaked 36 out of 52 documents Leaked 0 out of 9 docshells This occurs only when the steps are followed one after another, and when the surnames on the name list hits around "C", aka after Baker, Bukanov and the moment Campbell appears, hit apple-q to bring up the quit option screen then enter to close Minefield. Unable to reproduce problem when the name list scrolls till "w".
Can you clarify the steps a little? I'm with you to 3, but if I then hit Cmd+W, the only browser window I have left shows the Minefield project page (I assume you want the default home page based on the leaks), and focus returns to the about dialog. I thus neither have a "blank window" nor can I return focus to About with Cmd+`. If in your Minefield Cmd+W on a single-tab window doesn't close the window but instead closes the tab (and displays a blank if the tab was the last tab), then the steps seem reasonable in my mind. Do you have any extensions installed which might be causing this, particularly some sort of tabbing extension? If so, try disabling all the tab extensions and retesting, and then re-enable one at a time until you can figure out which one causes the leak (if indeed an extension's what's causing the leak).
"If in your Minefield Cmd+W on a single-tab window doesn't close the window but instead closes the tab (and displays a blank if the tab was the last tab), then the steps seem reasonable in my mind." I have selected the "Always show tab bar" option in the prefs. Thus, pressing apple-w doesn't close the window but only the tab in step 3. Confirming that this only occurs when the option is selected.
So I'm using XPCOM leak logging, which reports when any reference-counted object leaks, which includes windows/documents/docshells, and I'm not *quite* reproducing what you're reporting in terms of numbers of items leaked, but I'm definitely consistently reproducing a cycle collector fault. The cycle collector fault then prevents anything the cycle collector touches from being freed (a safety measure, given that the state of the cycle-collected heap is unknown), which causes ghastly numbers of objects to never be freed. Given the timer that creates the scrolling effect, I'm betting this is bug 386912, although I have no proof this is what's happening, and that also wouldn't explain why the leak goes away if you let scroll continue to the bottom.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: blocking-firefox3?
Keywords: mlk
Summary: Memory leak at About: window → Memory leak at About: window due to cycle collector fault
Flags: blocking-firefox3?
Product: Firefox → Core
QA Contact: general → general
Flags: blocking1.9?
+'ing this as CC faults are blockers.
Component: General → XPCOM
Flags: blocking1.9? → blocking1.9+
Priority: -- → P2
QA Contact: general → xpcom
I don't see a fault, just a very small leak of 1 nsSimpleNestedURI.
Assignee: nobody → peterv
This is not a blocker unless someone can reproduce the fault. Renominate if that's the case.
Flags: blocking1.9+
Priority: P2 → --
I'm going to mark this FIXED. This doesn't leak for me, I was just seeing an instance of bug 403199.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.