Closed
Bug 855058
Opened 12 years ago
Closed 12 years ago
Intermittent browser/dom/tests/browser/browser_ConsoleAPITests.js | timer duration is positive
Categories
(DevTools :: Console, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
Firefox 23
People
(Reporter: RyanVM, Assigned: msucan)
References
Details
(Keywords: intermittent-failure)
Attachments
(1 file)
7.42 KB,
patch
|
rcampbell
:
review+
|
Details | Diff | Splinter Review |
https://tbpl.mozilla.org/php/getParsedLog.php?id=21101858&tree=Mozilla-Inbound
WINNT 6.2 mozilla-inbound opt test mochitest-browser-chrome on 2013-03-26 04:16:43 PDT for push 58d7293faaff
slave: t-w864-ix-049
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | timer.name matches
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | timer.started exists
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | correct arg 0
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | found #test-timeEnd button
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | found correct window by window ID
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | expected level received
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | we have arguments
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | filename matches
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | lineNumber matches
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | functionName matches
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | arguments.length matches
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | timer name matches
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | timer duration is a number
04:37:55 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | timer duration is positive
04:37:55 INFO - Stack trace:
04:37:55 INFO - JS frame :: chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js :: testConsoleTimeEnd :: line 329
04:37:55 INFO - JS frame :: chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js :: CO_observe :: line 296
04:37:55 INFO - JS frame :: resource://gre/components/ConsoleAPI.js :: CA_notifyObservers :: line 330
04:37:55 INFO - JS frame :: resource://gre/components/ConsoleAPI.js :: CA__processQueuedItem :: line 306
04:37:55 INFO - JS frame :: resource://gre/components/ConsoleAPI.js :: CA__timerCallback :: line 234
04:37:55 INFO - native frame :: <unknown filename> :: <TOP_LEVEL> :: line 0
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | correct arg 0
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | found #test-namelessTimer button
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | found correct window by window ID
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | expected level received
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | we don't have arguments
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | we don't have a timer
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | functionName matches
04:37:55 INFO - TEST-PASS | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | lineNumber matches
04:37:55 INFO - INFO TEST-END | chrome://mochitests/content/browser/dom/tests/browser/browser_ConsoleAPITests.js | finished in 395ms
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Assignee | ||
Comment 4•12 years ago
|
||
Going to attempt a fix in bug 808370 for this intermittent failure. Albeit, I'm surprised this started failing. Maybe there's a bug outside of the console code. We'll see.
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Assignee | ||
Comment 7•12 years ago
|
||
Bug 808370 landed. It includes a potential fix for this intermittent failure.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 23
Comment hidden (Legacy TBPL/Treeherder Robot) |
Updated•12 years ago
|
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee | ||
Comment 9•12 years ago
|
||
Boris: this intermittent failure shows a -2 ms negative timer duration, which is odd. I remember we talked once about Date.now() not being a very reliable way to timestamp messages (for example, system dates can change). Do you know how we can get a negative duration on build servers?
It looks to me this test shouldn't really check for a strictly positive timer duration. As I understand things, here we have some options:
1. max(0, duration) so we avoid negative timers. Not a good idea, because it would be ideal to tell the user how much time has passed between the time() and timeEnd() calls, even if the user changes the system date.
2. allow negative duration.
3. use something different than Date.now(). Is there a way to get something like a system date-independent timestamp?
I see on MDN [1] that Windows systems have a 15ms resolution. That might be unrelated, but these test failures only occur on Win8.
Do you have any suggestions here? Thanks!
[1] https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/now
Flags: needinfo?(bzbarsky)
![]() |
||
Comment 10•12 years ago
|
||
I don't know what exactly generates this .duration member, but if you just need monotonically nondecreasing time, can you use performance.now() on some window?
Flags: needinfo?(bzbarsky)
Assignee | ||
Comment 11•12 years ago
|
||
(In reply to Boris Zbarsky (:bz) from comment #10)
> I don't know what exactly generates this .duration member, but if you just
> need monotonically nondecreasing time, can you use performance.now() on some
> window?
Thank you! I didn't know we have something like that. Will submit a patch.
Assignee | ||
Comment 12•12 years ago
|
||
This is a bit "heavy" for an intermittent test failure fix, however I think our timers are not accurate enough. I changed console.time() and timeEnd() to use performance.now(). We should always have positive durations. This also adds sub-millisecond timer accuracy.
I think timerRegistry is better implemented with a Map, rather than an Object. I've included changes to this effect.
Rob: please let me know if any other changes are needed.
Try push: https://tbpl.mozilla.org/?tree=Try&rev=d1798727301b
Attachment #743763 -
Flags: review?(rcampbell)
Comment 13•12 years ago
|
||
Comment on attachment 743763 [details] [diff] [review]
proposed patch
Review of attachment 743763 [details] [diff] [review]:
-----------------------------------------------------------------
nice cleanup.
Attachment #743763 -
Flags: review?(rcampbell) → review+
Assignee | ||
Comment 14•12 years ago
|
||
Thank you!
Landed:
https://hg.mozilla.org/integration/fx-team/rev/754c2079bde8
Whiteboard: [fixed-in-fx-team]
Comment 15•12 years ago
|
||
Status: REOPENED → RESOLVED
Closed: 12 years ago → 12 years ago
Resolution: --- → FIXED
Whiteboard: [fixed-in-fx-team]
Updated•7 years ago
|
Product: Firefox → DevTools
You need to log in
before you can comment on or make changes to this bug.
Description
•