Closed Bug 608634 Opened 9 years ago Closed 3 years ago

Intermittent test_error_in_video_document.html | Network state - got 2, expected 0 | Error object - didn't expect null, but got it

Categories

(Core :: Audio/Video: Playback, defect, P5, major)

ARM
Android
defect

Tracking

()

RESOLVED FIXED
mozilla51
Tracking Status
firefox32 --- disabled
firefox33 --- disabled
firefox51 --- fixed

People

(Reporter: Callek, Assigned: ctai)

References

(Blocks 1 open bug, )

Details

(Keywords: intermittent-failure)

Attachments

(6 files)

No description provided.
Depends on: 604067
landed: http://hg.mozilla.org/mozilla-central/rev/fd8cba3a7fd6 to [try] and help diagnose this.
Blocks: 604067, 438871
Depends on: 565307
No longer depends on: 604067
OS: Windows XP → Linux
Summary: [SeaMonkey] [mochi-1] test_error_in_video_document.html failing → [SeaMonkey] [mochi-1] Intermittent "test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE"
Version: unspecified → Trunk
This is unrelated to bug 604067. In this test, we'll attempt to load an invalid Ogg file, so the WebM decoder is not involved.
No longer blocks: 604067
From the debug output I stuck here:

55218 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | iframe src=http://mochi.test:8888/tests/content/media/test/bogus.ogv
55219 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | video src=
55220 ERROR TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE
55221 INFO TEST-END | /tests/content/media/test/test_error_in_video_document.html | finished in 1647ms

cpearce, any ideas what is going on... and where does the "generation" of the <video> element happen in code?  Any clue if SeaMonkey needs to port stuff to support whatever is going on there.
and actually, a passing Firefox run shows:

55361 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | iframe src=http://mochi.test:8888/tests/content/media/test/bogus.ogv
55362 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | video src=
55363 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE
55364 INFO TEST-END | /tests/content/media/test/test_error_in_video_document.html | finished in 1804ms


so video.src is empty in BOTH passing and failing, hrm.
(In reply to comment #5)
> From the debug output I stuck here:
> 
> 55218 INFO TEST-PASS |
> /tests/content/media/test/test_error_in_video_document.html | iframe
> src=http://mochi.test:8888/tests/content/media/test/bogus.ogv
> 55219 INFO TEST-PASS |
> /tests/content/media/test/test_error_in_video_document.html | video src=
> 55220 ERROR TEST-UNEXPECTED-FAIL |
> /tests/content/media/test/test_error_in_video_document.html | Must have error
> set to MEDIA_ERR_DECODE
> 55221 INFO TEST-END |
> /tests/content/media/test/test_error_in_video_document.html | finished in
> 1647ms
> 
> cpearce, any ideas what is going on... and where does the "generation" of the
> <video> element happen in code?

We create an nsVideoDocument when we detect that the iframe is loading vidoe content. We create the video element and add it as a child of the document in nsVideoDocument::CreateSyntheticVideoDocument(). Set a break point in nsHTMLMediaElement::InitializeDecoderForChannel() to see the callstack.

> Any clue if SeaMonkey needs to port stuff to
> support whatever is going on there.

I don't know much about the inner workings of content/docshell in either Firefox or SeaMonkey.

I would be interesting to know if v.error is non-null, and what the v.error.code is if v.error is non-null, plus the values of v.readyState and v.networkState.
55222 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | iframe src=http://mochi.test:8888/tests/content/media/test/bogus.ogv
55223 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | v.readyState=0
55224 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | v.networkState=2
55225 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | v.error is null
55226 ERROR TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE
55227 INFO TEST-END | /tests/content/media/test/test_error_in_video_document.html | finished in 1661ms
consequently in Firefox, v.networkState=0 and v.error is non-null with v.error.code=3
Is this SeaMonkey only? I got what looks like this failure on m-c try.
(In reply to comment #9)
> consequently in Firefox, v.networkState=0 and v.error is non-null with
> v.error.code=3

This what we expect.

(In reply to comment #10)
> tnikkel%gmail.com
> http://tinderbox.mozilla.org/showlog.cgi?log=MozillaTry/1288839089.1288839894.29462.gz
> Rev3 WINNT 6.1 tryserver opt test mochitests-1/5 on 2010/11/03 19:51:29

(In reply to comment #11)
> Is this SeaMonkey only? I got what looks like this failure on m-c try.

That failure on try/m-c looks like the load didn't get time to decode enough (i.e. anything) to determine that there's an error before the test finished. It's as if we stopped delaying the load event to soon.
(In reply to comment #14)
> Rev3 WINNT 6.1 mozilla-central opt test mochitests-1/5 on 2010/12/10 17:04:58

{
56639 INFO TEST-START | /tests/content/media/test/test_error_in_video_document.html
56640 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | iframe src=http://mochi.test:8888/tests/content/media/test/bogus.ogv
56641 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | v.readyState=0
56642 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | v.networkState=2
56643 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | v.error is null
56644 ERROR TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE
56645 INFO TEST-END | /tests/content/media/test/test_error_in_video_document.html | finished in 192ms
}

Same with
http://tinderbox.mozilla.org/showlog.cgi?log=SeaMonkey/1292082389.1292084659.17865.gz
Linux comm-central-trunk debug test mochitests-1/5 on 2010/12/11 07:46:29
Severity: normal → major
Component: Testing Infrastructure → Video/Audio
OS: Linux → All
Product: SeaMonkey → Core
QA Contact: testing-infrastructure → video.audio
Summary: [SeaMonkey] [mochi-1] Intermittent "test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE" → [mochi-1] Intermittent "test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE"
Whiteboard: [orange] → [near perma-orange on Linux SeaMonkey] [orange]
2010-11-01 23:28 -0400
http://hg.mozilla.org/mozilla-central/rev/0c4fb639c49e
Additional debugging info for Bug 608634
Unless the s/setTimeout/SimpleTest.executeSoon/ would fix the near-perma-orange,
I'll do an additional workaround patch for Linux SeaMonkey ftb.
Attachment #497100 - Flags: review?(chris)
Attachment #497100 - Attachment description: chris@pearce.org.nz → (Dv1) Improve code and checks, somewhat
Comment on attachment 497100 [details] [diff] [review]
(Dv1) Improve code and checks, somewhat
[Checked in: Comment 20]

Looks fine. I'd be concerned if changing the setTimeout on check() to use SimpleTest.executeSoon() instead changed the test behaviour.
Attachment #497100 - Flags: review?(chris) → review+
Comment on attachment 497100 [details] [diff] [review]
(Dv1) Improve code and checks, somewhat
[Checked in: Comment 20]

http://hg.mozilla.org/mozilla-central/rev/b9dcbc836bb3
Attachment #497100 - Attachment description: (Dv1) Improve code and checks, somewhat → (Dv1) Improve code and checks, somewhat [Checked in: Comment 20]
(In reply to comment #20)
> http://hg.mozilla.org/mozilla-central/rev/b9dcbc836bb3

As we already knew:
http://tinderbox.mozilla.org/showlog.cgi?log=SeaMonkey/1292557672.1292560985.28674.gz
Linux comm-central-trunk debug test mochitests-1/5 on 2010/12/16 19:47:52
{
55807 INFO TEST-START | /tests/content/media/test/test_error_in_video_document.html
55808 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | iframe src=http://mochi.test:8888/tests/content/media/test/bogus.ogv
55809 INFO TEST-PASS | /tests/content/media/test/test_error_in_video_document.html | Ready state - 0 should equal 0
55810 ERROR TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_error_in_video_document.html | Network state - got 2, expected 0
55811 ERROR TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_error_in_video_document.html | Error object - didn't expect null, but got it
55812 INFO TEST-END | /tests/content/media/test/test_error_in_video_document.html | finished in 2424ms
}

***

(In reply to comment #12)
> That failure on try/m-c looks like the load didn't get time to decode enough
> (i.e. anything) to determine that there's an error before the test finished.
> It's as if we stopped delaying the load event to soon.

Should we try to use
http://mxr.mozilla.org/mozilla-central/ident?i=xpcWaitForFinishedFrames
{
    * docshell/test/navigation/NavigationUtils.js
          o line 185 -- function xpcWaitForFinishedFrames(callback, numFrames) { 
}
or anything else?
Summary: [mochi-1] Intermittent "test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE" → [mochi-1] Intermittent "test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE", now "Network state - got 2, expected 0"
I suspect the landing of http://hg.mozilla.org/mozilla-central/rev/615cffa67cfa in bug 566779 may fix this random orange...
status2.0: ? → ---
Depends on: 566779
(In reply to comment #45)

http://tinderbox.mozilla.org/showlog.cgi?log=SeaMonkey/1304986018.1304989157.12680.gz
Linux comm-central-trunk debug test mochitests-1/5 on 2011/05/09 17:06:58  

Ftr, it didn't fix Linux SeaMonkey perma-orange.
Kind of interesting that I hit the crap (well, a small but noticeable amount of crap) out of this on try when I disable test_fullscreen-api.html on WinXP. Guess that could be explained by the way we rarely make it through M1 on WinXP when we try to run test_fullscreen-api.html, though.
Summary: [mochi-1] Intermittent "test_error_in_video_document.html | Must have error set to MEDIA_ERR_DECODE", now "Network state - got 2, expected 0" → [mochi-1] Intermittent "test_error_in_video_document.html | Network state - got 2, expected 0"
(In reply to Chris Pearce (:cpearce) (Mozilla Corporation) from comment #45)
> I suspect the landing of
> http://hg.mozilla.org/mozilla-central/rev/615cffa67cfa in bug 566779 may fix
> this random orange...

It didn't fix Firefox orange either :-(
No longer depends on: 566779
Summary: [mochi-1] Intermittent "test_error_in_video_document.html | Network state - got 2, expected 0" → [mochi-1] Intermittent test_error_in_video_document.html | Network state - got 2, expected 0 | Error object - didn't expect null, but got it