Closed
Bug 932880
Opened 12 years ago
Closed 12 years ago
Developer tools leak many windows until shutdown in browser-chrome tests
Categories
(DevTools :: General, defect)
DevTools
General
Tracking
(firefox25 wontfix, firefox26- fixed, firefox27- fixed, firefox28- fixed, b2g-v1.2 fixed)
People
(Reporter: mccr8, Assigned: bgrins)
References
Details
(Keywords: regression, Whiteboard: [MemShrink][qa-])
Attachments
(10 files, 10 obsolete files)
|
63.45 KB,
text/plain
|
Details | |
|
5.24 KB,
patch
|
bgrins
:
review+
past
:
checkin+
|
Details | Diff | Splinter Review |
|
1.62 KB,
patch
|
rcampbell
:
review+
RyanVM
:
checkin+
|
Details | Diff | Splinter Review |
|
14.17 KB,
patch
|
bgrins
:
review+
RyanVM
:
checkin+
|
Details | Diff | Splinter Review |
|
7.39 KB,
patch
|
bgrins
:
review+
RyanVM
:
checkin+
|
Details | Diff | Splinter Review |
|
19.40 KB,
patch
|
jryans
:
review+
RyanVM
:
checkin+
|
Details | Diff | Splinter Review |
|
3.08 KB,
patch
|
fitzgen
:
review+
RyanVM
:
checkin+
|
Details | Diff | Splinter Review |
|
3.74 KB,
patch
|
past
:
review+
RyanVM
:
checkin+
|
Details | Diff | Splinter Review |
|
47.37 KB,
patch
|
lsblakk
:
approval-mozilla-aurora+
|
Details | Diff | Splinter Review |
|
110.25 KB,
patch
|
lsblakk
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
from IRC:
04:07 khuey and a ton of devtools stuff
04:08 khuey https://khuey.pastebin.mozilla.org/3378934
04:08 khuey that's a successful bc run
04:08 khuey notice all the devtools stuff not getting GCd until the end
04:08 njn is the devtools pane being opened and then not closed?
04:09 khuey well the number of windows seems to suggest no
04:09 khuey since that would be 50 or more devtools pages
04:09 khuey *panes
(I've attached the shutdown log in question for when the pastebin goes away)
| Reporter | ||
Updated•12 years ago
|
Whiteboard: [MemShrink]
This is where I got today but we're still leaking through toolsMap in ways I don't understand.
Comment 3•12 years ago
|
||
Joe, can you find an owner for this please?
Comment 4•12 years ago
|
||
(This bug is one of three holding the trees closed - bug 932781 comment 11)
Severity: normal → blocker
Comment 5•12 years ago
|
||
Comment on attachment 824754 [details] [diff] [review]
Patch
Review of attachment 824754 [details] [diff] [review]:
-----------------------------------------------------------------
::: browser/devtools/framework/toolbox.js
@@ +912,1 @@
> });
Let's add a .then(null, console.error); here to see if there is an error in the teardown path.
Comment 6•12 years ago
|
||
(In reply to Panos Astithas [:past] from comment #5)
> Comment on attachment 824754 [details] [diff] [review]
> Patch
>
> Review of attachment 824754 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: browser/devtools/framework/toolbox.js
> @@ +912,1 @@
> > });
>
> Let's add a .then(null, console.error); here to see if there is an error in
> the teardown path.
This is from our conversation in the day. I think he did the .then(null, console.error) and got this : (not sure though)
INFO TEST-END | chrome://mochitests/content/browser/browser/devtools/inspector/t
est/browser_inspector_bug_665880.js | finished in 8658ms
TEST-INFO | checking window state
DBG-SERVER: Received packet 33: {
"from": "conn0.domwalker23",
"error": "unknownError",
"message": "[Exception... \"Component returned failure code: 0x80004002 (NS_NO
INTERFACE) [nsIInterfaceRequestor.getInterface]\" nsresult: \"0x80004002 (NS_NO
INTERFACE)\" location: \"JS frame :: resource://gre/modules/devtools/LayoutHelp
ers.jsm :: LayoutHelpers :: line 20\" data: no]"
}
DBG-SERVER: Received packet 34: {
"from": "conn0.pagestyle24",
"error": "unknownError",
"message": "[Exception... \"Component returned failure code: 0x80004002 (NS_NO
INTERFACE) [nsIInterfaceRequestor.getInterface]\" nsresult: \"0x80004002 (NS_NO
INTERFACE)\" location: \"JS frame :: resource://gre/modules/devtools/LayoutHelp
ers.jsm :: LayoutHelpers :: line 20\" data: no]"
}
DBG-SERVER: Received packet 35: {
"from": "conn0.pagestyle24",
"error": "unknownError",
"message": "TypeError: win is null"
}
DBG-SERVER: Received packet 36: {
"registered": [
"console-api-profiler"
],
"from": "conn0.profiler6"
}
DBG-SERVER: Received packet 37: {
"from": "conn0.domwalker23"
}
DBG-SERVER: Received packet 38: {
"error": "wrongState",
"from": "conn0.tab2"
}
DBG-SERVER: Cleaning up connection.
Comment 7•12 years ago
|
||
(our conversation earlier in the morning*)
Comment 8•12 years ago
|
||
No, that was something different. Abruptly removing the tab isn't properly handled by the inspector backend.
On a related note we could try adding this to the inspector's head.js:
http://mxr.mozilla.org/mozilla-central/source/browser/devtools/debugger/test/head.js#32
| Assignee | ||
Comment 9•12 years ago
|
||
(In reply to Panos Astithas [:past] from comment #5)
> Comment on attachment 824754 [details] [diff] [review]
> Patch
>
> Review of attachment 824754 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: browser/devtools/framework/toolbox.js
> @@ +912,1 @@
> > });
>
> Let's add a .then(null, console.error); here to see if there is an error in
> the teardown path.
Pushed the patch along with the additional logging to try: https://tbpl.mozilla.org/?tree=Try&rev=104b7f5a0cec.
I'm trying to get my environment set up to provide the same information that I see at the end of the test here: https://bugzilla.mozilla.org/attachment.cgi?id=824741. Right now I've added --enable-logrefcnt, which gives plenty of information, but it isn't the same as what I see in the attachment. For reference, here is what I am seeing at the end of a devtools/inspector tests with logrefcnt on: https://gist.github.com/bgrins/ee04e1cf20633f07586c. Is there a particular configuration setting that will allow the end of the test to appear as it does in the log attached to this bug?
| Reporter | ||
Comment 10•12 years ago
|
||
1. regular debug build
2. don't have MOZ_QUIET set in your environment
That should be enough to get it to show ++DOMWINDOW and --DOMWINDOW.
Comment 11•12 years ago
|
||
When the connection is closed suddenly, outstanding requests will never get an answer, so toolbox shutdown is being delayed indefinitely. This rejects all outstanding request promises during front destruction.
I added this on top of khuey's patch, which seemed fine.
khuey, does this clean stuff up for you?
Attachment #824754 -
Attachment is obsolete: true
Attachment #824976 -
Flags: review?(anton)
Attachment #824976 -
Flags: feedback?(khuey)
Comment 13•12 years ago
|
||
Comment on attachment 824976 [details] [diff] [review]
updated patch
Review of attachment 824976 [details] [diff] [review]:
-----------------------------------------------------------------
LGTM as long as try is green.
Attachment #824976 -
Flags: review?(anton) → review+
| Assignee | ||
Comment 14•12 years ago
|
||
(In reply to Dave Camp (:dcamp) from comment #11)
> Created attachment 824976 [details] [diff] [review]
> updated patch
>
> When the connection is closed suddenly, outstanding requests will never get
> an answer, so toolbox shutdown is being delayed indefinitely. This rejects
> all outstanding request promises during front destruction.
>
> I added this on top of khuey's patch, which seemed fine.
>
> khuey, does this clean stuff up for you?
I've run dcamp's patch locally and can confirm that this cleans up the shutdown log for the inspector tests.
Comment 15•12 years ago
|
||
Looks like there is one unknown testfailure
chrome://mochitests/content/browser/browser/devtools/inspector/test/browser_inspector_bug_835722_infobar_reappears.js | uncaught exception - TypeError: node is undefined at chrome://mochitests/content/browser/browser/devtools/inspector/test/browser_inspector_bug_835722_infobar_reappears.js:25
| Assignee | ||
Comment 16•12 years ago
|
||
(In reply to Olli Pettay [:smaug] from comment #15)
> Looks like there is one unknown testfailure
> chrome://mochitests/content/browser/browser/devtools/inspector/test/
> browser_inspector_bug_835722_infobar_reappears.js | uncaught exception -
> TypeError: node is undefined at
> chrome://mochitests/content/browser/browser/devtools/inspector/test/
> browser_inspector_bug_835722_infobar_reappears.js:25
I'm looking into this error.
| Assignee | ||
Comment 17•12 years ago
|
||
Comment on attachment 824976 [details] [diff] [review]
updated patch
Review of attachment 824976 [details] [diff] [review]:
-----------------------------------------------------------------
::: browser/devtools/inspector/inspector-panel.js
@@ +652,5 @@
> this._markupFrame.removeEventListener("load", this._boundMarkupFrameLoad, true);
> delete this._boundMarkupFrameLoad;
>
> this._markupBox.removeAttribute("hidden");
> + delete this._markupBox;
This line should be removed, it is causing a test failure on browser_inspector_bug_835722_infobar_reappears.js
| Assignee | ||
Comment 18•12 years ago
|
||
Resolves test failure from Attachment 824976 [details] [diff]. Pushed to try:
https://tbpl.mozilla.org/?tree=Try&rev=9f808fe8ed10
| Assignee | ||
Comment 19•12 years ago
|
||
Rebuild patch after resolving bug with proper commit message. Pushed to try, again: https://tbpl.mozilla.org/?tree=Try&rev=1ef13f4cdfa6
Attachment #824976 -
Attachment is obsolete: true
Attachment #825025 -
Attachment is obsolete: true
Attachment #824976 -
Flags: feedback?(khuey)
Attachment #825033 -
Flags: review+
Flags: needinfo?(vporof)
Comment 20•12 years ago
|
||
Comment 21•12 years ago
|
||
The new/old shutdown leak detector from bug 932898 reveals lots of leaks, only when running browser/devtools/inspector/test/:
http://pastebin.mozilla.org/3388252
With the patch applied that Panos just pushed it looks a lot better, but there's still some leaks left:
http://pastebin.mozilla.org/3388365
Please ignore the first two (maybe three) lines. They're caused by the BrowserNewTabPreloader that keeps two windows alive until shutdown.
| Assignee | ||
Comment 22•12 years ago
|
||
(In reply to Tim Taubert [:ttaubert] from comment #21)
> The new/old shutdown leak detector from bug 932898 reveals lots of leaks,
> only when running browser/devtools/inspector/test/:
>
> http://pastebin.mozilla.org/3388252
>
> With the patch applied that Panos just pushed it looks a lot better, but
> there's still some leaks left:
>
> http://pastebin.mozilla.org/3388365
>
> Please ignore the first two (maybe three) lines. They're caused by the
> BrowserNewTabPreloader that keeps two windows alive until shutdown.
I'm looking into the remaining leaks. So we should expect that there will still be a few even after everything is resolved due to the BrowserNewTabPreloader?
| Assignee | ||
Comment 23•12 years ago
|
||
This fixes the leaks in browser/devtools/inspector. Pushed to try: https://tbpl.mozilla.org/?tree=Try&rev=f8b2e831429e.
Tim, I still see a few errors at the end of test, but if I remove these tests it just shows 4 errors inside of other tests which leads me to believe that it is a side effect of the leak checking. I am running the latest patch on Bug 932898, should I not be seeing this?
1:15.70 TEST-UNEXPECTED-FAIL | ShutdownLeaks | leaked 4 DOMWindow(s) and 1 DocShell(s) until shutdown
1:15.70 TEST-UNEXPECTED-FAIL | browser/devtools/inspector/test/browser_inspector_basic_highlighter.js | leaked 2 window(s) until shutdown [url = data:text/html,<html></html>]
1:15.70 TEST-UNEXPECTED-FAIL | browser/devtools/inspector/test/browser_inspector_sidebarstate.js | leaked 1 window(s) until shutdown [url = about:blank]
1:15.70 TEST-UNEXPECTED-FAIL | browser/devtools/inspector/test/browser_inspector_sidebarstate.js | leaked 1 window(s) until shutdown [url = chrome://browser/content/devtools/markup-view.xhtml]
1:15.70 TEST-UNEXPECTED-FAIL | browser/devtools/inspector/test/browser_inspector_select_last_selected.js | leaked 1 docShell(s) until shutdown
Attachment #825332 -
Flags: feedback?(ttaubert)
Comment 24•12 years ago
|
||
(In reply to Brian Grinstead [:bgrins] from comment #23)
> 1:15.70 TEST-UNEXPECTED-FAIL |
> browser/devtools/inspector/test/browser_inspector_basic_highlighter.js |
> leaked 2 window(s) until shutdown [url = data:text/html,<html></html>]
This seems to be caused by browser/devtools/styleinspector/rule-view.js. It fills gDummyPromise but never clears it. What's the deal with that and what is it used for?
| Assignee | ||
Comment 25•12 years ago
|
||
A few more updates to the leak-inspector patch. Resolves some issues with ruleview and a couple style inspector fixes. Have inspector failures down to one test, which I believe has to do with timing of the toolbox closing.
Basically, the destroy() function is being called before selectTool() finishes in the open(). This callback https://mxr.mozilla.org/mozilla-central/source/browser/devtools/framework/toolbox.js#208 fires *after* the destroy: https://mxr.mozilla.org/mozilla-central/source/browser/devtools/framework/toolbox.js#853. Still investigating how to resolve this.
Attachment #825332 -
Attachment is obsolete: true
Attachment #825332 -
Flags: feedback?(ttaubert)
Comment 26•12 years ago
|
||
With these two patches I see no more DOM window memleaks in the web console tests (local debug build).
Try push https://tbpl.mozilla.org/?tree=Try&rev=5cf4d69b2579
Comment 27•12 years ago
|
||
This patch doesn't seem to reduce the leaks, but it removes the inspector reference from the target object, which should at least make the code easier to follow. It also explicitly nullifies the inspector reference on destroy(), which might have made a small improvement.
Attachment #825512 -
Flags: review?(bgrinstead)
Comment 28•12 years ago
|
||
Another fix for an error that appears during tests, but doesn't cause the leak. This was a regression from bug 880511.
Attachment #825532 -
Flags: review?(rcampbell)
Updated•12 years ago
|
Assignee: nobody → past
Status: NEW → ASSIGNED
| Assignee | ||
Comment 29•12 years ago
|
||
This patch includes fixes for scratchpad, notably dropping the number of leaked windows from 80 to 2. It also lowers the number of leaked windows on the styleinspector to 8, inspector to 2, and I believe it clears up the webconsole as noted by msucan.
Attachment #825425 -
Attachment is obsolete: true
Comment 30•12 years ago
|
||
Thanks bzexport, but Brian has been doing most of the work here.
Assignee: past → bgrinstead
| Assignee | ||
Comment 31•12 years ago
|
||
Comment on attachment 825533 [details] [diff] [review]
leak-devtools.patch
Pushed to try:
* Without leak detector applied: https://tbpl.mozilla.org/?tree=Try&rev=23e0f7182266.
* With leak detector applied (not sure if it will survive all the tests): https://tbpl.mozilla.org/?tree=Try&rev=b2535855adf6.
Attachment #825533 -
Flags: review?(past)
Comment 32•12 years ago
|
||
Comment on attachment 825533 [details] [diff] [review]
leak-devtools.patch
Review of attachment 825533 [details] [diff] [review]:
-----------------------------------------------------------------
::: browser/devtools/inspector/inspector-panel.js
@@ +675,5 @@
> this._markupFrame.parentNode.removeChild(this._markupFrame);
> delete this._markupFrame;
> }
> +
> + delete this._markupBox;
this._markupBox = null; would be better (avoids putting the object in dictionary mode), since this isn't just called from destroy().
::: browser/devtools/inspector/test/browser_inspector_select_last_selected.js
@@ +33,5 @@
> + inspector.destroy();
> + toolbox.destroy();
> + toolbox = inspector = page1 = page2 = null;
> + gBrowser.removeCurrentTab();
> + finish();
Since the two destroy() calls return promises, let's chain them for maximum safety:
inspector.destroy().then(() => toolbox.destroy()).then(() => {...});
::: browser/devtools/scratchpad/test/browser.ini
@@ +27,5 @@
> [browser_scratchpad_inspect.js]
> [browser_scratchpad_long_string.js]
> [browser_scratchpad_open.js]
> [browser_scratchpad_open_error_console.js]
> +# Disabled, as escodegen is being replaced
Add the bug number so we won't forget please.
Attachment #825533 -
Flags: review?(past) → review+
Updated•12 years ago
|
Attachment #825033 -
Flags: checkin+
| Assignee | ||
Comment 33•12 years ago
|
||
Running mochitest-browser on devtools locally with these patches applied, here are the remaining leaks:
25:01.21 *** End BrowserChrome Test Results ***
25:04.53 TEST-UNEXPECTED-FAIL | ShutdownLeaks | leaked 23 DOMWindow(s) and 1 DocShell(s) until shutdown
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 2 window(s) until shutdown [url = chrome://browser/content/devtools/app-manager/device.xhtml]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 2 window(s) until shutdown [url = chrome://browser/content/devtools/app-manager/connection-footer.xhtml]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 2 window(s) until shutdown [url = about:app-manager]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 2 window(s) until shutdown [url = chrome://browser/content/devtools/app-manager/projects.xhtml]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 1 window(s) until shutdown [url = about:blank]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 1 window(s) until shutdown [url = chrome://browser/content/devtools/widgets/VariablesView.xul]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/webconsole/test/browser_webconsole_bug_653531_highlighter_console_helper.js | leaked 2 window(s) until shutdown [url = about:blank]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/webconsole/test/browser_webconsole_bug_653531_highlighter_console_helper.js | leaked 2 window(s) until shutdown [url = chrome://browser/content/devtools/framework/toolbox.xul]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/webconsole/test/browser_webconsole_bug_653531_highlighter_console_helper.js | leaked 1 window(s) until shutdown [url = chrome://browser/content/devtools/markup-view.xhtml]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/webconsole/test/browser_webconsole_bug_653531_highlighter_console_helper.js | leaked 1 window(s) until shutdown [url = chrome://browser/content/devtools/inspector/inspector.xul]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/webconsole/test/browser_webconsole_bug_653531_highlighter_console_helper.js | leaked 1 docShell(s) until shutdown
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/scratchpad/test/browser_scratchpad_bug_679467_falsy.js | leaked 1 window(s) until shutdown [url = about:blank]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/scratchpad/test/browser_scratchpad_bug_679467_falsy.js | leaked 1 window(s) until shutdown [url = chrome://browser/content/devtools/scratchpad.xul]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/scratchpad/test/browser_scratchpad_contexts.js | leaked 1 window(s) until shutdown [url = about:blank]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/scratchpad/test/browser_scratchpad_contexts.js | leaked 1 window(s) until shutdown [url = chrome://browser/content/devtools/scratchpad.xul]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/styleinspector/test/browser_bug722196_rule_view_media_queries.js | leaked 1 window(s) until shutdown [url = about:blank]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/styleinspector/test/browser_bug722196_rule_view_media_queries.js | leaked 1 window(s) until shutdown [url = chrome://browser/content/devtools/inspector/inspector.xul]
25:04.53 TEST-UNEXPECTED-FAIL | browser/devtools/debugger/test/browser_dbg_clean-exit-window.js | leaked 1 window(s) until shutdown [url = http://example.com/browser/browser/devtools/debugger/test/doc_inline-debugger-statement.html]
| Assignee | ||
Comment 34•12 years ago
|
||
Updated with comments from Panos. Waiting for try build to finish: https://tbpl.mozilla.org/?tree=Try&rev=e98f83b74355
Attachment #825533 -
Attachment is obsolete: true
Attachment #825590 -
Flags: review+
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 28
Updated•12 years ago
|
Comment 36•12 years ago
|
||
Should this have been closed? There are still two patches awaiting review. Add "[leave open]" to the whiteboard?
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Whiteboard: [MemShrink] → [leave open][MemShrink]
| Assignee | ||
Updated•12 years ago
|
Attachment #825590 -
Flags: checkin?
Comment 37•12 years ago
|
||
Comment on attachment 825590 [details] [diff] [review]
leak-devtools.patch
https://hg.mozilla.org/integration/mozilla-inbound/rev/885ec75e5600
Attachment #825590 -
Flags: checkin? → checkin+
| Assignee | ||
Comment 38•12 years ago
|
||
This patch will fix the remaining devtools bc leaks (WIP, will mark as obsolete with a final version). See below for the logs of the remaining leaks after a full run with all three patches applied.
> 26:42.64 TEST-UNEXPECTED-FAIL | ShutdownLeaks | leaked 11 DOMWindow(s) and 0 DocShell(s) until shutdown
> 26:42.64 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 2 window(s) until shutdown [url = chrome://browser/content/devtools/app-manager/device.xhtml]
> 26:42.64 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 2 window(s) until shutdown [url = chrome://browser/content/devtools/app-manager/connection-footer.xhtml]
> 26:42.64 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 2 window(s) until shutdown [url = about:app-manager]
> 26:42.64 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 2 window(s) until shutdown [url = chrome://browser/content/devtools/app-manager/projects.xhtml]
> 26:42.64 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 1 window(s) until shutdown [url = about:blank]
> 26:42.64 TEST-UNEXPECTED-FAIL | browser/devtools/app-manager/test/browser_manifest_editor.js | leaked 1 window(s) until shutdown [url = chrome://browser/content/devtools/widgets/VariablesView.xul]
> 26:42.64 TEST-UNEXPECTED-FAIL | browser/devtools/debugger/test/browser_dbg_clean-exit-window.js | leaked 1 window(s) until shutdown [url = http://example.com/browser/browser/devtools/debugger/test/doc_inline-debugger-statement.html]
This patch fixes the 6 failures from App Manager window leaks.
Try: https://tbpl.mozilla.org/?tree=Try&rev=8f44cfab4fc8
Attachment #825712 -
Flags: review?(paul)
Comment 40•12 years ago
|
||
How far back do we need to backport each of these patches?
Comment 41•12 years ago
|
||
Comment on attachment 825512 [details] [diff] [review]
Make targets oblivious to inspectors
Review of attachment 825512 [details] [diff] [review]:
-----------------------------------------------------------------
I just noticed that this patch breaks browser_inspector_basic_highlighter.js as it is. Let me think about it some more.
Attachment #825512 -
Flags: review?(bgrinstead)
Comment 42•12 years ago
|
||
I just had to make sure that the inspector panel doesn't pretend to be destroyed until its InspectorFront is destroyed, too.
Attachment #825836 -
Flags: review?(bgrinstead)
Updated•12 years ago
|
Attachment #825512 -
Attachment is obsolete: true
Updated•12 years ago
|
Assignee: bgrinstead → past
Status: REOPENED → ASSIGNED
Updated•12 years ago
|
Attachment #825532 -
Flags: review?(rcampbell) → review+
Comment 43•12 years ago
|
||
Comment 44•12 years ago
|
||
Comment on attachment 825712 [details] [diff] [review]
Fix window leaks in App Manager
Review of attachment 825712 [details] [diff] [review]:
-----------------------------------------------------------------
Looks good to me.
::: browser/devtools/app-manager/connection-store.js
@@ +33,5 @@
>
> ConnectionStore.prototype = {
> + destroy: function() {
> + if (this._connection) {
> + this._connection.off(Connection.Events.DESTROYED, this.destroy);
Can you add a comment why this is necessary?
Attachment #825712 -
Flags: review?(paul) → review+
Carrying over past's r+ from attachment 825712 [details] [diff] [review].
(In reply to Panos Astithas [:past] from comment #44)
> ::: browser/devtools/app-manager/connection-store.js
> @@ +33,5 @@
> >
> > ConnectionStore.prototype = {
> > + destroy: function() {
> > + if (this._connection) {
> > + this._connection.off(Connection.Events.DESTROYED, this.destroy);
>
> Can you add a comment why this is necessary?
Sure! I've added a comment in each place where the .once() handler is manually unbound like this.
Attachment #825712 -
Attachment is obsolete: true
Attachment #825965 -
Flags: review+
Attachment #825965 -
Flags: checkin?
Comment 46•12 years ago
|
||
(In reply to Panos Astithas [:past] from comment #28)
> Created attachment 825532 [details] [diff] [review]
> Make preNest/postNest not throw when the browser is abruptly shut down
>
> Another fix for an error that appears during tests, but doesn't cause the
> leak. This was a regression from bug 880511.
Does this need to land as well?
Comment 47•12 years ago
|
||
Comment on attachment 825532 [details] [diff] [review]
Make preNest/postNest not throw when the browser is abruptly shut down
(In reply to Ryan VanderMeulen [:RyanVM UTC-4] from comment #46)
> (In reply to Panos Astithas [:past] from comment #28)
> > Created attachment 825532 [details] [diff] [review]
> > Make preNest/postNest not throw when the browser is abruptly shut down
> >
> > Another fix for an error that appears during tests, but doesn't cause the
> > leak. This was a regression from bug 880511.
>
> Does this need to land as well?
Yes please!
Attachment #825532 -
Flags: checkin?
| Reporter | ||
Updated•12 years ago
|
Keywords: checkin-needed
Updated•12 years ago
|
Attachment #825532 -
Flags: checkin? → checkin+
Updated•12 years ago
|
Attachment #825965 -
Flags: checkin? → checkin+
Comment 48•12 years ago
|
||
https://hg.mozilla.org/integration/fx-team/rev/dd88e2d76be6
https://hg.mozilla.org/integration/fx-team/rev/271b1a2fde86
Keywords: checkin-needed
Comment 49•12 years ago
|
||
Hasn't been an issue post-release of FF25. We'd take a low risk fix up to Beta, but no need to track.
Blocks: 896353
status-firefox25:
--- → affected
status-firefox26:
--- → affected
status-firefox27:
--- → affected
status-firefox28:
--- → affected
Keywords: regression
Comment 50•12 years ago
|
||
The last leaking test with ttaubert's patch from bug 932898 is browser_dbg_clean-exit-window.js. This patch contains some fixes and cleanups that unfortunately don't plug the leak. Unless someone can come up with any other ideas, I am of the opinion that once Tim's patch lands we should just disable this test.
The test was created to make sure we don't regress the small fix in bug 916458, but I think I have spent a disproportionate amount of time on it compared to its significance. I will try to track down someone more knowledgable with leaks than me to look into it, but if it comes to block the landing of Tim's patch, then let's just disable it for now.
Attachment #826022 -
Flags: review?(nfitzgerald)
Comment 51•12 years ago
|
||
Comment 52•12 years ago
|
||
Comment on attachment 826022 [details] [diff] [review]
Small cleanups and fixes for browser_dbg_clean-exit-window.js
Review of attachment 826022 [details] [diff] [review]:
-----------------------------------------------------------------
LGTM
Attachment #826022 -
Flags: review?(nfitzgerald) → review+
Comment 53•12 years ago
|
||
Comment on attachment 826022 [details] [diff] [review]
Small cleanups and fixes for browser_dbg_clean-exit-window.js
https://hg.mozilla.org/integration/fx-team/rev/a9473ddc1cbf
Attachment #826022 -
Flags: checkin+
| Assignee | ||
Comment 54•12 years ago
|
||
Resolved remaining leaks from Comment 38. Have disabled the debugger test and filed Bug 933950 to resolve that.
Assignee: past → bgrinstead
Attachment #825711 -
Attachment is obsolete: true
Attachment #826104 -
Flags: review?(nfitzgerald)
| Assignee | ||
Comment 55•12 years ago
|
||
(In reply to Brian Grinstead [:bgrins] from comment #54)
> Created attachment 826104 [details] [diff] [review]
> leak-devtools-2.patch
>
> Resolved remaining leaks from Comment 38. Have disabled the debugger test
> and filed Bug 933950 to resolve that.
Also have pushed this series to try:
* With shutdown leak inspector v3: https://tbpl.mozilla.org/?tree=Try&rev=5e320e17c1f4
* With shutdown leak inspector v4: https://tbpl.mozilla.org/?tree=Try&rev=85e32d15add2
* Without shutdown leak inspector: https://tbpl.mozilla.org/?tree=Try&rev=c03cbeb01cb1
Comment 56•12 years ago
|
||
Comment on attachment 826104 [details] [diff] [review]
leak-devtools-2.patch
Review of attachment 826104 [details] [diff] [review]:
-----------------------------------------------------------------
For disabling the test only, I'll let someone else look at the other stuff (or someone already has?)
Attachment #826104 -
Flags: review?(nfitzgerald) → review+
Comment 57•12 years ago
|
||
Comment on attachment 826104 [details] [diff] [review]
leak-devtools-2.patch
Review of attachment 826104 [details] [diff] [review]:
-----------------------------------------------------------------
::: browser/devtools/debugger/test/browser.ini
@@ +84,5 @@
> [browser_dbg_breakpoints-new-script.js]
> [browser_dbg_breakpoints-pane.js]
> [browser_dbg_chrome-debugging.js]
> +# Disabled because of leaks - See Bug 933950.
> +# [browser_dbg_clean-exit-window.js]
I believe the preferred way to disable these is using:
[browser_dbg_clean-exit-window.js]
# Disabled because of leaks - See Bug 933950.
skip-if = true
(that way it appears in the skipped tests stats etc).
| Assignee | ||
Comment 59•12 years ago
|
||
Updated test skipping syntax as suggested. Panos, fitzgen r+ed the fact that we were skipping the tests but asked someone else take a look at the other couple of changes.
Last try push had unrelated failures, here is an updated one with the leak detector: https://tbpl.mozilla.org/?tree=Try&rev=1a4056821778. Notice that the debugs are orange because of the leak detector, but if you take a look at the full logs you can see that there are no devtools leaks in the list: https://tbpl.mozilla.org/php/getParsedLog.php?id=30007598&tree=Try&full=1.
Attachment #826104 -
Attachment is obsolete: true
Attachment #826288 -
Flags: review?(past)
| Assignee | ||
Comment 60•12 years ago
|
||
Comment on attachment 825836 [details] [diff] [review]
Make targets oblivious to inspectors v2
Review of attachment 825836 [details] [diff] [review]:
-----------------------------------------------------------------
Looks good to me - ready for checkin pending green try: https://tbpl.mozilla.org/?tree=Try&rev=5851e5ce5d3c
Attachment #825836 -
Flags: review?(bgrinstead) → review+
Comment 61•12 years ago
|
||
Comment on attachment 826288 [details] [diff] [review]
leak-devtools-2.patch
Review of attachment 826288 [details] [diff] [review]:
-----------------------------------------------------------------
::: browser/devtools/debugger/test/browser.ini
@@ +85,5 @@
> [browser_dbg_breakpoints-pane.js]
> [browser_dbg_chrome-debugging.js]
> [browser_dbg_clean-exit-window.js]
> +# Disabled because of leaks - See Bug 933950.
> +skip-if = true
I'd rather make this a fail-if, so that we could tell if the leak is ever fixed by an unrelated code change, but I'm not sure if the browser.ini parser supports this syntax (others do). Can you give it a try?
Attachment #826288 -
Flags: review?(past) → review+
Comment 62•12 years ago
|
||
(In reply to Panos Astithas [:past] from comment #61)
> I'd rather make this a fail-if, so that we could tell if the leak is ever
> fixed by an unrelated code change, but I'm not sure if the browser.ini
> parser supports this syntax (others do). Can you give it a try?
The leak detector runs outside of the test pass/fail determination, so I don't think this would work - unless I'm misunderstanding something?
Comment 63•12 years ago
|
||
Comment on attachment 825836 [details] [diff] [review]
Make targets oblivious to inspectors v2
https://hg.mozilla.org/integration/fx-team/rev/a22b4507341d
Attachment #825836 -
Flags: checkin+
Comment 64•12 years ago
|
||
Comment on attachment 826288 [details] [diff] [review]
leak-devtools-2.patch
Quite sure Ed is correct. With any luck, bug 933950 will ensure that it isn't disabled for long anyway :)
https://hg.mozilla.org/integration/fx-team/rev/facf28febe15
Attachment #826288 -
Flags: checkin+
Updated•12 years ago
|
Whiteboard: [leave open][MemShrink] → [MemShrink]
Comment 65•12 years ago
|
||
(In reply to Ed Morley [:edmorley UTC+1] from comment #62)
> The leak detector runs outside of the test pass/fail determination, so I
> don't think this would work - unless I'm misunderstanding something?
Ah, yes, that is a very good point! I spent too much time running this test in isolation :-)
Comment 66•12 years ago
|
||
This is a rollup patch of the 6 patches that landed for Aurora uplift. Brian, if this is green, I'll ask you to formally request approval since you can better assess the risk :)
https://tbpl.mozilla.org/?tree=Try&rev=64266045fb53
Updated•12 years ago
|
Attachment #826386 -
Attachment is patch: true
Comment 67•12 years ago
|
||
This one was a bit more complicated. Adding bug 915874 and bug 922125 to it made it apply for the most part.
https://tbpl.mozilla.org/?tree=Try&rev=25d348d03c0d
Comment 68•12 years ago
|
||
Miraculously, both of these look good on Try. Brian or Panos, can you please take a look for sanity's sake and request approval for uplift if you're happy with them? :)
Comment 69•12 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/a22b4507341d
https://hg.mozilla.org/mozilla-central/rev/facf28febe15
Status: ASSIGNED → RESOLVED
Closed: 12 years ago → 12 years ago
Resolution: --- → FIXED
Comment 70•12 years ago
|
||
Comment on attachment 826386 [details] [diff] [review]
Aurora rollup patch
[Approval Request Comment]
Bug caused by (feature/regressing bug #): a number of devtools-related leaks crept in after the previous leak detector was disabled in bug 728294
User impact if declined: memory usage will increase after opening and closing most (any?) developer tools
Testing completed (on m-c, etc.): m-c
Risk to taking this patch (and alternatives if risky): this is not a small patch, but we have good test coverage for the areas it touches (tool shutdown mostly), plus it is only developer-facing features that are affected
String or IDL/UUID changes made by this patch: none
Attachment #826386 -
Flags: approval-mozilla-aurora?
Comment 71•12 years ago
|
||
Comment on attachment 826389 [details] [diff] [review]
Beta rollup patch
[Approval Request Comment]
Bug caused by (feature/regressing bug #): a number of devtools-related leaks crept in after the previous leak detector was disabled in bug 728294
User impact if declined: memory usage will increase after opening and closing most (any?) developer tools
Testing completed (on m-c, etc.): m-c
Risk to taking this patch (and alternatives if risky): this is not a small patch (and slightly bigger than the aurora patch), but we have good test coverage for the areas it touches (tool shutdown mostly), plus it is only developer-facing features that are affected
String or IDL/UUID changes made by this patch: none
Attachment #826389 -
Flags: approval-mozilla-beta?
Comment 72•12 years ago
|
||
Thank you Ryan, my hat is off to you!
Updated•12 years ago
|
Attachment #826386 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Updated•12 years ago
|
Attachment #826389 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 73•12 years ago
|
||
Comment 74•12 years ago
|
||
status-b2g-v1.2:
--- → fixed
Comment 75•11 years ago
|
||
If this needs extra QA testing please remove the [qa-] whiteboard tag and add the verifyme keyword.
Whiteboard: [MemShrink] → [MemShrink][qa-]
Updated•7 years ago
|
Product: Firefox → DevTools
You need to log in
before you can comment on or make changes to this bug.
Description
•