Closed
Bug 1241221
Opened 10 years ago
Closed 10 years ago
Dominator children are missing in the UI
Categories
(DevTools :: Memory, defect, P1)
DevTools
Memory
Tracking
(firefox46 fixed)
RESOLVED
FIXED
Firefox 46
| Tracking | Status | |
|---|---|---|
| firefox46 | --- | fixed |
People
(Reporter: fitzgen, Assigned: fitzgen)
Details
Attachments
(4 files, 1 obsolete file)
|
88.37 KB,
application/x-gzip
|
Details | |
|
302.85 KB,
image/png
|
Details | |
|
3.75 KB,
patch
|
sfink
:
review+
|
Details | Diff | Splinter Review |
|
7.34 KB,
patch
|
fitzgen
:
review+
|
Details | Diff | Splinter Review |
No description provided.
| Assignee | ||
Comment 1•10 years ago
|
||
STR:
* Import this snapshot
* Switch to dominators view
ER:
retainedSize(gc roots) =
shallowSize(gc roots) +
sum(retainedSize(x) for x in children(gc roots))
AR:
Lots of size missing...
| Assignee | ||
Comment 2•10 years ago
|
||
| Assignee | ||
Updated•10 years ago
|
Has STR: --- → yes
| Assignee | ||
Comment 3•10 years ago
|
||
This adds a new test for dominator trees computed from heap snapshots, to make
sure that a node's retained size matches the following:
retainedSize(node) = shallowSize(node) + sum(retainedSize(c) for c in children(node))
This test did not find the bug described in bug 1241221, but seems like a
valuable test to have anyways.
Attachment #8710110 -
Flags: review?(sphink)
| Assignee | ||
Updated•10 years ago
|
Keywords: leave-open
Comment 4•10 years ago
|
||
Comment on attachment 8710110 [details] [diff] [review]
Part 0: Test retained size of nodes in dominmator trees
Review of attachment 8710110 [details] [diff] [review]:
-----------------------------------------------------------------
Makes me wonder a little if this should be a DEBUG-mode assert within the C++, but then again, DEBUG is slow enough as it is. And this is still a good test to have in JS anyway.
It does make me a little nervous to be comparing numbers for exact equality, but I guess these are all integer values that should fit well with 2^53 or whatever the limit is.
Attachment #8710110 -
Flags: review?(sphink) → review+
| Assignee | ||
Comment 5•10 years ago
|
||
The condition checked when reporting whether there were `moreChildrenAvailable`
when constructing the initial DominatorTreeNode tree from a DominatorTree was
backwards. This commit fixes the condition and adds a test that fails without
the condition fix.
Attachment #8710141 -
Flags: review?(jdescottes)
| Assignee | ||
Comment 6•10 years ago
|
||
Keywords: leave-open
| Assignee | ||
Updated•10 years ago
|
Summary: Dominator tree item's children and self size not adding up to its total retained size → Dominator children are missing in the UI
Comment 7•10 years ago
|
||
Comment on attachment 8710141 [details] [diff] [review]
Part 1: Fix incorrect reporting of `moreChildrenAvailable`
Review of attachment 8710141 [details] [diff] [review]:
-----------------------------------------------------------------
Great Nick! Looks good to me.
::: devtools/shared/heapsnapshot/DominatorTreeNode.js
@@ +205,5 @@
> const endIdx = Math.min(childNodeIds.length, maxSiblings);
> for (let i = 0; i < endIdx; i++) {
> DominatorTreeNode.addChild(node, dfs(childNodeIds[i], newDepth));
> }
> + node.moreChildrenAvailable = endIdx < childNodeIds.length;
I was a bit confused by the name endIdx here : I assumed it was the last index reached and I thought the test was incorrect. Maybe partialLength ?
Feel free to ignore :)
::: devtools/shared/heapsnapshot/tests/unit/test_DominatorTreeNode_partialTraversal_01.js
@@ +18,5 @@
> +// | `- 1000
> +// `- 400
> +// |- 1100
> +// |- 1200
> +// `- 1300
For completeness, would be nice to cover the case where `number of children == maxSiblings` (so 2 children in this test).
moreChildrenAvailable should be false in this case as well.
Attachment #8710141 -
Flags: review?(jdescottes) → review+
| Assignee | ||
Comment 8•10 years ago
|
||
(In reply to Julian Descottes [:jdescottes] from comment #7)
> For completeness, would be nice to cover the case where `number of children
> == maxSiblings` (so 2 children in this test).
> moreChildrenAvailable should be false in this case as well.
Great idea.
| Assignee | ||
Comment 9•10 years ago
|
||
The condition checked when reporting whether there were `moreChildrenAvailable`
when constructing the initial DominatorTreeNode tree from a DominatorTree was
backwards. This commit fixes the condition and adds a test that fails without
the condition fix.
Attachment #8710173 -
Flags: review+
| Assignee | ||
Updated•10 years ago
|
Attachment #8710141 -
Attachment is obsolete: true
| Assignee | ||
Updated•10 years ago
|
Keywords: checkin-needed
Comment 10•10 years ago
|
||
https://hg.mozilla.org/integration/fx-team/rev/481ad00ddc82
https://hg.mozilla.org/integration/fx-team/rev/e1f6239bfa33
Keywords: checkin-needed
Comment 11•10 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/481ad00ddc82
https://hg.mozilla.org/mozilla-central/rev/e1f6239bfa33
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
status-firefox46:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → Firefox 46
Comment 12•10 years ago
|
||
[bugday-20160323]
Status: RESOLVED,FIXED -> VERIFIED
Comments:
Test partially Successful
Component:
Name Firefox
Version 46.0b9
Build ID 20160322075646
Update Channel beta
User Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
OS Windows 7 SP1 x86_64
Expected Results:
This part is not so much clear to me; except this previous steps worked fine
retainedSize(gc roots) =
shallowSize(gc roots) +
sum(retainedSize(x) for x in children(gc roots))
Actual Results:
As expected
Updated•7 years ago
|
Product: Firefox → DevTools
You need to log in
before you can comment on or make changes to this bug.
Description
•