Bug 94242
| Summary: | media/track/track-cues-sorted-before-dispatch.html flakily times out on Linux | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Anna Cavender <annacc> |
| Component: | Media | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED WONTFIX | ||
| Severity: | Normal | CC: | eric.carlson, pkasting, vcarbune |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Anna Cavender
track-cues-sorted-before-dispatch.html has been flakily timing out on Linux.
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=track-cues-sorted-before-dispatch
My guess is that occasionally the line
waitForEvent('ended', logEndTest);
gets executed before the bodyLoaded() function at which point 'video' has not been defined and the event listener never gets attached and the test then never ends.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Eric Carlson
(In reply to comment #0)
> track-cues-sorted-before-dispatch.html has been flakily timing out on Linux.
> http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=track-cues-sorted-before-dispatch
>
> My guess is that occasionally the line
>
> waitForEvent('ended', logEndTest);
>
> gets executed before the bodyLoaded() function at which point 'video' has not been defined and the event listener never gets attached and the test then never ends.
"waitForEvent('ended', logEndTest)" should *always* execute before bodyLoaded(), but it just registers an event handler so that should be fine. "video" is defined by code in video-test.js that is executed when it loads, so that should not be an issue here.
Anna Cavender
(In reply to comment #1)
> (In reply to comment #0)
> > track-cues-sorted-before-dispatch.html has been flakily timing out on Linux.
> > http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=track-cues-sorted-before-dispatch
> >
> > My guess is that occasionally the line
> >
> > waitForEvent('ended', logEndTest);
> >
> > gets executed before the bodyLoaded() function at which point 'video' has not been defined and the event listener never gets attached and the test then never ends.
>
> "waitForEvent('ended', logEndTest)" should *always* execute before bodyLoaded(), but it just registers an event handler so that should be fine. "video" is defined by code in video-test.js that is executed when it loads, so that should not be an issue here.
Huh. Why then do we need to findMediaElement() in bodyLoaded()?
Can't think of another reason why this test might timeout because it looks like it is guaranteed to end when the 'ended' event is fired. Any other guesses?
Eric Carlson
(In reply to comment #2)
>
> Huh. Why then do we need to findMediaElement() in bodyLoaded()?
>
You are right, findMediaElement() is needed because of the placement of the include, but waitForEvent() succeeds because "mediaElement" is initialized to the document if the <video> element hasn't been created yet.
> Can't think of another reason why this test might timeout because it looks like it is guaranteed to end when the 'ended' event is fired. Any other guesses?
I haven't seen the results when the test fails so I can't be sure, but it will fail any of the events doesn't fire (track load, canplaythrough, ended), or if the media file takes too long to load. What does the failure look like?
Anna Cavender
(In reply to comment #3)
> (In reply to comment #2)
> >
> > Huh. Why then do we need to findMediaElement() in bodyLoaded()?
> >
> You are right, findMediaElement() is needed because of the placement of the include, but waitForEvent() succeeds because "mediaElement" is initialized to the document if the <video> element hasn't been created yet.
>
> > Can't think of another reason why this test might timeout because it looks like it is guaranteed to end when the 'ended' event is fired. Any other guesses?
>
> I haven't seen the results when the test fails so I can't be sure, but it will fail any of the events doesn't fire (track load, canplaythrough, ended), or if the media file takes too long to load. What does the failure look like?
No clue. It fails infrequently enough that I haven't been able to repro it locally.
Peter Kasting
No longer referenced