Intermittent browser_animation_actors_02.js | The animation is currently running - Got pending, expected running

RESOLVED FIXED in Firefox 37

Status

defect
RESOLVED FIXED
5 years ago
Last year

People

(Reporter: RyanVM, Assigned: pbro)

Tracking

({intermittent-failure})

unspecified
Firefox 38
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(firefox36 unaffected, firefox37 fixed, firefox38 fixed, firefox-esr31 unaffected)

Details

Attachments

(2 attachments, 1 obsolete attachment)

15:20:22 INFO - 5474 INFO TEST-START | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js
15:20:22 INFO - -*-*- UserCustomizations (parent): document created: http://test1.example.org/browser/toolkit/devtools/server/tests/browser/animation.html
15:20:22 INFO - -*-*- UserCustomizations (parent): _injectInWindow
15:20:22 INFO - -*-*- UserCustomizations (parent): principal status: 0
15:20:22 INFO - 5475 INFO checking window state
15:20:22 INFO - 5476 INFO Entering test
15:20:22 INFO - 5477 INFO Adding a new tab with URL: 'http://test1.example.org/browser/toolkit/devtools/server/tests/browser/animation.html'
15:20:22 INFO - 5478 INFO Waiting for event: 'load' on [object XULElement].
15:20:22 INFO - 5479 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://test1.example.org/browser/toolkit/devtools/server/tests/browser/animation.html" line: 0}]
15:20:22 INFO - 5480 INFO Got event: 'load' on [object XULElement].
15:20:22 INFO - 5481 INFO URL 'http://test1.example.org/browser/toolkit/devtools/server/tests/browser/animation.html' loading complete
15:20:22 INFO - 5482 INFO TEST-PASS | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | 0 players were returned for the unanimated node
15:20:22 INFO - 5483 INFO TEST-PASS | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | One animation player was returned
15:20:22 INFO - 5484 INFO TEST-PASS | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | Two animation players were returned
15:20:22 INFO - 5485 INFO TEST-PASS | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | One animation player was returned for the transitioned node
15:20:22 INFO - 5486 INFO TEST-PASS | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | The player has an initialState
15:20:22 INFO - 5487 INFO TEST-PASS | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | The player has the getCurrentState method
15:20:22 INFO - 5488 INFO TEST-UNEXPECTED-FAIL | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | The animation is currently running - Got pending, expected running
15:20:22 INFO - Stack trace:
15:20:22 INFO - chrome://mochikit/content/browser-test.js:test_is:851
15:20:22 INFO - chrome://mochitests/content/browser/toolkit/devtools/server/tests/browser/browser_animation_actors_02.js:playersCanBePausedAndResumed:53
15:20:22 INFO - self-hosted:InterpretGeneratorResume:659
15:20:22 INFO - self-hosted:next:585
15:20:22 INFO - Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:870:23
15:20:22 INFO - this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:749:7
15:20:22 INFO - this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:691:37
15:20:22 INFO - 5489 INFO TEST-PASS | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | The animation is now paused
15:20:22 INFO - 5490 INFO TEST-PASS | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | The animation is now running again
15:20:22 INFO - 5491 INFO Leaving test
15:20:23 INFO - 5492 INFO MEMORY STAT vsize after test: 795652096
15:20:23 INFO - 5493 INFO MEMORY STAT vsizeMaxContiguous after test: 439091200
15:20:23 INFO - 5494 INFO MEMORY STAT residentFast after test: 550662144
15:20:23 INFO - 5495 INFO MEMORY STAT heapAllocated after test: 241860134
15:20:23 INFO - 5496 INFO TEST-OK | toolkit/devtools/server/tests/browser/browser_animation_actors_02.js | took 293ms
Sending over to pbrosset
Assignee: nobody → pbrosset
Component: Developer Tools → Developer Tools: Inspector
That's an easy fix. Recently web animations have had a new thing whereby they go through a pending state before starting to run, and there's a ready promise that consumers can wait for in that case.
This promise is already available on the AnimationPlayerActor, so it's just a matter of adding a step to the intermittent failing test to wait for this promise to resolve.
Some background for Brian: the test fails since bug 927349 landed. That bug made animations pass by a pending state shortly before starting, and also exposed a 'ready' promise on AnimationPlayer objects.
The failing test assumed the animation was running no matter what.
Since bug 1113091, I've exposed the ready promise on AnimationPlayerActor objects. So the test just has to wait until the front.ready promise resolves.

Pending try push: https://treeherder.mozilla.org/#/jobs?repo=try&revision=1a3931b9c52f
Attachment #8552985 - Flags: review?(bgrinstead)
That's right, this intermittent made it to 37. I'll request uplift once it gets reviewed and lands on central.
The try push is green so far.
Attachment #8552985 - Flags: review?(bgrinstead) → review+
https://hg.mozilla.org/integration/fx-team/rev/b792e9c41c66
Flags: in-testsuite+
Keywords: checkin-needed
Whiteboard: [fixed-in-fx-team]
https://hg.mozilla.org/mozilla-central/rev/b792e9c41c66
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Whiteboard: [fixed-in-fx-team]
Target Milestone: --- → Firefox 38
Sorry, this is a bit of a mess. The patch in this bug was the right idea, but the fix was incorrect:

yield player.ready
instead of
yield player.ready()

So this doesn't make anything fail, and since the bug was intermittent to start with, we didn't realize that the patch didn't solve the issue right away.

Also, I have actually fixed this issue for good on nightly since then (in bug 1122466 apparently).
So this intermittent remains in Aurora.

I don't know if it's a good idea to uplift bug 1122466 now. I'd rather just provide a new patch here just for Aurora (a patch that just adds the () parens after yield player.ready).

Ryan, is that something I can do?
Flags: needinfo?(ryanvm)
If you're worried about uplifting bug 1122466, then a simple test-only fix sounds like a great idea :)
Flags: needinfo?(ryanvm)
/r/4097 - Bug 1123936 - Aurora-only fix for browser_animation_actors_02.js; r=me

Pull down this commit:

hg pull review -r a34c2a30cb9abe612254fabdd14e52e536b249bc
Attachment #8567139 - Flags: review?(pbrosset)
Attachment #8567139 - Flags: review?(pbrosset) → review+
Comment on attachment 8567139 [details]
MozReview Request: bz://1123936/pbrosset

https://reviewboard.mozilla.org/r/4095/#review3259

Ship It!
So, I've made an Aurora-only patch (since that particular change already exists on nightly).
It's a test only change that will have absolutely no impacts except from fixing the intermittent on Aurora, so I've gone ahead and R+'d it myself. I hope that's ok. I think it is because that exact fix already exists on Nightly and has been R+'d there for some time.
Attachment #8567139 - Attachment is obsolete: true
Attachment #8619183 - Flags: review+
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.