Closed
Bug 1359002
Opened 8 years ago
Closed 8 years ago
Investigate e10s toolkit/components/perfmonitoring/tests/browser/browser_compartments.js | Sanity check (parent process: 0): totalSystemTime of component is not impossibly larger than that of process: 64097 <= 61005 - false == true - JS frame :: chrome:/
Categories
(Toolkit :: Performance Monitoring, defect, P5)
Toolkit
Performance Monitoring
Tracking
()
RESOLVED
FIXED
mozilla55
Tracking | Status | |
---|---|---|
firefox55 | --- | fixed |
People
(Reporter: Gijs, Unassigned)
References
(Blocks 1 open bug)
Details
(Whiteboard: [stockwell fixed])
Attachments
(1 file)
Bug 1359002 - stop checking the total time of processes against compartment data from all processes,
59 bytes,
text/x-review-board-request
|
Yoric
:
review+
|
Details |
We used a workaround to shut up the intermittent orange in bug 1352664 but we should still figure out why the test is failing the way it is.
+++ This bug was initially created as a clone of Bug #1352664 +++
https://treeherder.mozilla.org/logviewer.html#?job_id=87991592&repo=autoland
16:41:45 INFO - TEST-PASS | toolkit/components/perfmonitoring/tests/browser/browser_compartments.js | Searching by title, the frames don't show up in the list of components - true == true -
16:41:45 INFO - Searching for window title 'Main frame for test browser_compartments.js 0.845897513513775' in [] (I hope to find it)
16:41:45 INFO - Searching by title, we didn't find the main frame
16:41:45 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "http://example.com/browser/toolkit/components/perfmonitoring/tests/browser/browser_compartments.html?test=0.0453446058246062" line: 0}]
16:41:45 INFO - Setting titles
16:41:45 INFO - Buffered messages finished
16:41:45 INFO - TEST-UNEXPECTED-FAIL | toolkit/components/perfmonitoring/tests/browser/browser_compartments.js | Sanity check (parent process: 0): totalSystemTime of component is not impossibly larger than that of process: 64097 <= 61005 - false == true - JS frame :: chrome://mochitests/content/browser/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js :: ok :: line 85
16:41:45 INFO - Stack trace:
16:41:45 INFO - chrome://mochitests/content/browser/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js:ok:85
16:41:45 INFO - chrome://mochitests/content/browser/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js:leq:88
16:41:45 INFO - chrome://mochitests/content/browser/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js:monotinicity_tester/frameCheck<:168
16:41:45 INFO - setInterval handler*monotinicity_tester@chrome://mochitests/content/browser/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js:206:18
16:41:45 INFO - test@chrome://mochitests/content/browser/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js:234:5
16:41:45 INFO - TaskImpl_run@resource://gre/modules/Task.jsm:319:42
16:41:45 INFO - process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:922:23
16:41:45 INFO - walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:806:7
16:41:45 INFO - Promise*scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:739:11
16:41:45 INFO - schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:770:7
16:41:45 INFO - completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:707:7
16:41:45 INFO - receiveMessage@resource://testing-common/ContentTask.jsm:113:9
16:41:45 INFO - Titles set
16:41:45 INFO - Searching for frame title 'Subframe for test browser_compartments.js 0.9269153926364134' in [] (I hope not to find it)
16:41:45 INFO - TEST-PASS | toolkit/components/perfmonitoring/tests/browser/browser_compartments.js | Searching by title, the frames don't show up in the list of components - true == true -
(In reply to :Gijs from comment #17)
> (In reply to David Teller [:Yoric] (please use "needinfo") from comment #14)
> > (In reply to :Gijs (away until Tuesday 18) from comment #12)
> > > Uh, OK... should we just disable the test? Is there something we can do to
> > > debug? Under what circumstances does time (according to the perf monitoring
> > > system / computer) flow backwards?
> >
> > Unspecified by the OS, but typically, each CPU (or even each core, depending
> > on the architecture) has a different clock, so this may happen whenever the
> > OS reschedules the thread/process to another CPU/core. Also, I believe the
> > clocks readjust themselves to each other from time to time, unpredictably.
> > So, in practice, whenever.
>
> Actually, I think the problem here is with the code and/or test, not with
> clocks. AIUI the snapshot code includes both parent and child process time,
> here:
>
> https://dxr.mozilla.org/mozilla-central/source/toolkit/components/
> perfmonitoring/PerformanceStats.jsm#847-860
>
> Which would explain why the time for any given component in the child
> process could easily surpass the total time for the parent process, because
> they're in different processes. So if the parent is idle and the child
> isn't, the child time is going to be (much) larger.
>
> I don't think we can make meaningful assertions about the totalSystemTime of
> the parent process against the totalSystemTime of a component in the child
> process. Am I missing something?
(In reply to David Teller [:Yoric] (please use "needinfo") from comment #18)
> While the clock issues exist, it's entirely possible that I missed an
> unrelated problem. I don't have time to check today, but I'll try to check
> by the end of the week.
Ni Yoric to confirm/deny my diagnosis. :-)
Flags: needinfo?(dteller)
You are correct, this check only makes sense for `totalUserTime`, not `totalSystemTime`.
Flags: needinfo?(dteller)
Updated•8 years ago
|
status-firefox55:
--- → affected
status-firefox57:
affected → ---
Comment hidden (mozreview-request) |
Comment 3•8 years ago
|
||
mozreview-review |
Comment on attachment 8863725 [details]
Bug 1359002 - stop checking the total time of processes against compartment data from all processes,
https://reviewboard.mozilla.org/r/135498/#review138520
I'm not even sure that `totalUserTime` makes sense either. I'd go for simply removing the loop.
Comment 4•8 years ago
|
||
mozreview-review |
Comment on attachment 8863725 [details]
Bug 1359002 - stop checking the total time of processes against compartment data from all processes,
https://reviewboard.mozilla.org/r/135498/#review138868
Attachment #8863725 -
Flags: review?(dteller)
Comment hidden (mozreview-request) |
Comment 6•8 years ago
|
||
mozreview-review |
Comment on attachment 8863725 [details]
Bug 1359002 - stop checking the total time of processes against compartment data from all processes,
https://reviewboard.mozilla.org/r/135498/#review138944
Attachment #8863725 -
Flags: review?(dteller) → review+
Pushed by gijskruitbosch@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/2f7d8cabe3c8
stop checking the total time of processes against compartment data from all processes, r=Yoric
Comment 8•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
You need to log in
before you can comment on or make changes to this bug.
Description
•