Closed
Bug 1137527
Opened 10 years ago
Closed 10 years ago
Memory actor should expose GC events
Categories
(DevTools :: Memory, defect)
Tracking
(firefox40 fixed)
RESOLVED
FIXED
Firefox 40
Tracking | Status | |
---|---|---|
firefox40 | --- | fixed |
People
(Reporter: fitzgen, Assigned: fitzgen)
References
Details
Attachments
(3 files, 8 obsolete files)
(deleted),
patch
|
fitzgen
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
fitzgen
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
fitzgen
:
review+
|
Details | Diff | Splinter Review |
Should send GC stats api info from memory actor
Assignee | ||
Comment 1•10 years ago
|
||
Assignee | ||
Comment 2•10 years ago
|
||
Assignee | ||
Comment 3•10 years ago
|
||
Assignee | ||
Updated•10 years ago
|
Attachment #8570268 -
Flags: review?(jryans)
Assignee | ||
Updated•10 years ago
|
Attachment #8570269 -
Flags: review?(jryans)
Assignee | ||
Updated•10 years ago
|
Attachment #8570270 -
Flags: review+
Comment on attachment 8570268 [details] [diff] [review]
Part 1: Make the memory actor emit events for cycle collection and garbage collection
Review of attachment 8570268 [details] [diff] [review]:
-----------------------------------------------------------------
Generally fine, but let's rethink the pref part.
I am out next week, may want someone else to do the next review.
::: toolkit/devtools/server/actors/memory.js
@@ +156,5 @@
> + false);
> + Services.obs.removeObserver(this._onGarbageCollection,
> + "garbage-collection-statistics",
> + false);
> + Services.prefs.setBoolPref("javascript.options.mem.notify",
Is this something we do from other actors? It has the potential to get confused if you connect several toolboxes:
1. Connect page toolbox A, it captures false as original
2. Use memory feature in toolbox A
3. Connect some other toolbox B, to a new page, or browser toolbox, it capture true as original
4. Use memory feature in toolbox B
5. Close toolbox A, it restores false
6. Close toolbox B, it restores true
So, I think we need a smarter way to track the original value here.
Attachment #8570268 -
Flags: review?(jryans) → feedback+
Attachment #8570269 -
Flags: review?(jryans) → review+
Assignee | ||
Comment 5•10 years ago
|
||
Ok the pref story is a mess with multiple debugger servers and multiple processes. We are gonna expose this API on Debugger.Memory in a much more sane way. Bug 1137844.
Depends on: 1137844
Assignee | ||
Comment 6•10 years ago
|
||
Attachment #8570268 -
Attachment is obsolete: true
Assignee | ||
Comment 7•10 years ago
|
||
Attachment #8570269 -
Attachment is obsolete: true
Assignee | ||
Comment 8•10 years ago
|
||
Attachment #8570270 -
Attachment is obsolete: true
Assignee | ||
Updated•10 years ago
|
Attachment #8578965 -
Flags: review+
Assignee | ||
Updated•10 years ago
|
Attachment #8578964 -
Flags: review?(jryans)
Assignee | ||
Comment 9•10 years ago
|
||
Attachment #8578964 -
Attachment is obsolete: true
Attachment #8578964 -
Flags: review?(jryans)
Assignee | ||
Updated•10 years ago
|
Attachment #8578966 -
Flags: review+
Assignee | ||
Updated•10 years ago
|
Attachment #8578972 -
Flags: review?(jryans)
Comment on attachment 8578972 [details] [diff] [review]
Part 1: Make the memory actor emit events for garbage collection
Review of attachment 8578972 [details] [diff] [review]:
-----------------------------------------------------------------
Yay, much simpler!
Attachment #8578972 -
Flags: review?(jryans) → review+
Assignee | ||
Comment 11•10 years ago
|
||
ni? me to land this when fx-team opens up again.
Flags: needinfo?(nfitzgerald)
Assignee | ||
Comment 12•10 years ago
|
||
Flags: needinfo?(nfitzgerald)
Assignee | ||
Comment 13•10 years ago
|
||
I _think_ those failures are unrelated. Tried to do a new try push, rebased on m-c, but try is closed. Will do it later.
Flags: needinfo?(nfitzgerald)
Assignee | ||
Comment 14•10 years ago
|
||
Flags: needinfo?(nfitzgerald)
Assignee | ||
Comment 15•10 years ago
|
||
I have a sneaking suspicion that the only way that new objects could enter the nursery between a nursery eviction and a markRuntime would be if there was some kind of "on garbage collection" hook that ran JS after the nursery was evicted and would therefore trigger the assertions we are seeing in this test...
Crap. I think we may have to rethink the way the onGarbageCollection hook is fired. Perhaps related to bug 1144356.
FWIW, here is the relevant part of the backtrace:
frame #0: 0x000000010712f761 XUL`js::gc::ZoneCellIterUnderGC::ZoneCellIterUnderGC(this=0x00007fff5fbe3b60, zone=0x000000010057b000, kind=JITCODE) + 129 at jsgcinlines.h:260
frame #1: 0x00000001070e3466 XUL`js::gc::ZoneCellIterUnderGC::ZoneCellIterUnderGC(this=0x00007fff5fbe3b60, zone=0x000000010057b000, kind=JITCODE) + 38 at jsgcinlines.h:263
frame #2: 0x00000001072e1d3a XUL`js::jit::JitRuntime::Mark(trc=0x00007fff5fbe3f50) + 154 at Ion.cpp:494
frame #3: 0x0000000107136aff XUL`js::gc::GCRuntime::markRuntime(this=0x00000001178d1348, trc=0x00007fff5fbe3f50, traceOrMark=TraceRuntime, rootsSource=TraceRoots) + 1791 at RootMarking.cpp:476
frame #4: 0x0000000106e12ac9 XUL`js::TraceRuntime(trc=0x00007fff5fbe3f50) + 249 at Iteration.cpp:29
frame #5: 0x000000010713d426 XUL`JS_TraceRuntime(trc=0x00007fff5fbe3f50) + 38 at Tracer.cpp:121
frame #6: 0x00000001070a7bc7 XUL`JS::ubi::RootList::init(this=0x00007fff5fbe4568, debuggees=0x00007fff5fbe4180) + 151 at UbiNode.cpp:298
Assignee | ||
Updated•10 years ago
|
Summary: Memory actor should expose GC stats API → Memory actor should expose GC events
Assignee | ||
Comment 16•10 years ago
|
||
Attachment #8578965 -
Attachment is obsolete: true
Assignee | ||
Comment 17•10 years ago
|
||
Assignee | ||
Comment 18•10 years ago
|
||
Attachment #8578966 -
Attachment is obsolete: true
Assignee | ||
Updated•10 years ago
|
Attachment #8578972 -
Attachment is obsolete: true
Assignee | ||
Comment 19•10 years ago
|
||
Rebased now that bug 1150253 landed, and here is a new try push: https://treeherder.mozilla.org/#/jobs?repo=try&revision=4d0cc33ed4d5
Assignee | ||
Updated•10 years ago
|
Attachment #8582112 -
Attachment is obsolete: true
Assignee | ||
Comment 20•10 years ago
|
||
Comment on attachment 8596903 [details] [diff] [review]
Part 1: Make the memory actor emit events for garbage collection
Carrying over r+
Attachment #8596903 -
Flags: review+
Assignee | ||
Comment 21•10 years ago
|
||
Comment on attachment 8596904 [details] [diff] [review]
Part 2: Add a test for GC MemoryActor events
Carrying over r+
Attachment #8596904 -
Flags: review+
Assignee | ||
Comment 22•10 years ago
|
||
Comment on attachment 8596905 [details] [diff] [review]
Part 3: Fix code example in protocol.js.md
Carrying over r+
Attachment #8596905 -
Flags: review+
Assignee | ||
Updated•10 years ago
|
Keywords: checkin-needed
Comment 23•10 years ago
|
||
Comment 24•10 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/ee6125ec034c
https://hg.mozilla.org/mozilla-central/rev/1ead03b75744
https://hg.mozilla.org/mozilla-central/rev/f9a7d3620d58
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
status-firefox40:
--- → fixed
Resolution: --- → FIXED
Whiteboard: [fixed-in-fx-team]
Target Milestone: --- → Firefox 40
Updated•6 years ago
|
Product: Firefox → DevTools
You need to log in
before you can comment on or make changes to this bug.
Description
•