Closed Bug 903051 Opened 9 years ago Closed 9 years ago

Intermittent test_bug686942.html; test case seek.webm | uncaught exception - TypeError: Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value. at test_bug686942.html:26

Categories

(Core :: Audio/Video, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla30
Tracking Status
firefox28 --- fixed
firefox29 --- fixed
firefox30 --- fixed
firefox-esr24 --- unaffected
b2g-v1.2 --- wontfix
b2g-v1.3 --- fixed
b2g-v1.3T --- fixed
b2g-v1.4 --- fixed

People

(Reporter: RyanVM, Assigned: cpearce)

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

https://tbpl.mozilla.org/php/getParsedLog.php?id=26292992&tree=B2g-Inbound

Ubuntu VM 12.04 b2g-inbound debug test mochitest-1 on 2013-08-07 21:04:45 PDT for push 733697c789e8
slave: tst-linux32-ec2-330

21:44:35     INFO -  146537 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [started small-shot.ogg-0] Length of array should match number of running tests
21:44:35     INFO -  146538 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [started small-shot.m4a-1] Length of array should match number of running tests
21:44:35     INFO -  [Parent 2303] WARNING: Need a principal to compare this to!: file ../../../caps/src/nsPrincipal.cpp, line 271
21:44:35     INFO -  [Parent 2303] WARNING: Need a principal to compare this to!: file ../../../caps/src/nsPrincipal.cpp, line 271
21:44:35     INFO -  System JS : ERROR (null):0
21:44:35     INFO -                       uncaught exception: 2147746065
21:44:35     INFO -  146539 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | Should not be playing after seek to end and back to beginning
21:44:35     INFO -  146540 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [finished small-shot.ogg-0] Length of array should match number of running tests
21:44:36     INFO -  System JS : ERROR (null):0
21:44:36     INFO -                       uncaught exception: 2147746065
21:44:36     INFO -  146541 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [started small-shot.mp3-2] Length of array should match number of running tests
21:44:36     INFO -  146542 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | Should not be playing after seek to end and back to beginning
21:44:36     INFO -  146543 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [finished small-shot.m4a-1] Length of array should match number of running tests
21:44:36     INFO -  System JS : ERROR (null):0
21:44:36     INFO -                       uncaught exception: 2147746065
21:44:36     INFO -  146544 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [started r11025_s16_c1.wav-3] Length of array should match number of running tests
21:44:36     INFO -  [Parent 2303] WARNING: Need a principal to compare this to!: file ../../../caps/src/nsPrincipal.cpp, line 271
21:44:36     INFO -  [Parent 2303] WARNING: Need a principal to compare this to!: file ../../../caps/src/nsPrincipal.cpp, line 271
21:44:37     INFO -  System JS : ERROR (null):0
21:44:37     INFO -                       uncaught exception: 2147746065
21:44:37     INFO -  146545 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | Should not be playing after seek to end and back to beginning
21:44:37     INFO -  146546 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [finished r11025_s16_c1.wav-3] Length of array should match number of running tests
21:44:37     INFO -  System JS : ERROR (null):0
21:44:37     INFO -                       uncaught exception: 2147746065
21:44:37     INFO -  146547 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [started 320x240.ogv-4] Length of array should match number of running tests
21:44:37     INFO -  146548 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | Should not be playing after seek to end and back to beginning
21:44:37     INFO -  146549 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [finished small-shot.mp3-2] Length of array should match number of running tests
21:44:38     INFO -  System JS : ERROR (null):0
21:44:38     INFO -                       uncaught exception: 2147746065
21:44:38     INFO -  146550 INFO TEST-PASS | /tests/content/media/test/test_bug686942.html | [started seek.webm-5] Length of array should match number of running tests
21:44:38     INFO -  --DOMWINDOW == 23 (0xd167dc0) [serial = 4620] [outer = (nil)] [url = http://mochi.test:8888/tests/SimpleTest/iframe-between-tests.html]
21:44:38     INFO -  --DOMWINDOW == 22 (0x9b72328) [serial = 4622] [outer = (nil)] [url = http://mochi.test:8888/tests/SimpleTest/iframe-between-tests.html]
21:44:38     INFO -  --DOMWINDOW == 21 (0x9ca2778) [serial = 4624] [outer = (nil)] [url = http://mochi.test:8888/tests/SimpleTest/iframe-between-tests.html]
21:44:38     INFO -  System JS : ERROR (null):0
21:44:38     INFO -                       uncaught exception: 2147746065
21:44:38     INFO -  146551 ERROR TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_bug686942.html | uncaught exception - TypeError: Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value. at http://mochi.test:8888/tests/content/media/test/test_bug686942.html:26
21:44:38     INFO -  JavaScript error: http://mochi.test:8888/tests/content/media/test/test_bug686942.html, line 26: Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value.
21:44:38     INFO -  146552 INFO TEST-END | /tests/content/media/test/test_bug686942.html | finished in 4227ms
Assignee: nobody → tzimmermann
Hi,

I had a look if this might be related to my bug 831224, but I don't think so. The initial report happened before bug 831224 entered b2g-inbound. Also 831224's Gecko code and test case shouldn't overlap with this bug.

I'm unassigning myself for now. Feel free to reassign, if bug 831224 is related here.
Assignee: tzimmermann → nobody
I'll look into this today/tomorrow.
Assignee: nobody → chris.double
Summary: Intermittent test_bug686942.html | uncaught exception - TypeError: Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value. at http://mochi.test:8888/tests/content/media/test/test_bug686942.html:26 → Intermittent test_bug686942.html | uncaught exception - TypeError: Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value. at test_bug686942.html:26
Summary: Intermittent test_bug686942.html | uncaught exception - TypeError: Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value. at test_bug686942.html:26 → Intermittent test_bug686942.html; test case seek.webm | uncaught exception - TypeError: Value being assigned to HTMLMediaElement.currentTime is not a finite floating-point value. at test_bug686942.html:26
This failure is happening for me locally. vp9.webm sometime is reporting a duration of Infinity in the loadedmetadata event handler.
I think this happens like so:
* Some test runs and loads a ChannelMediaResource for vp9.webm. The decoder decoding vp9.webm requests a seek, so the HTTP channel is recreated, but before any data comes in the load is canceled. I think the page is going into the bfcache causes this.
* ChannelMediaResource::OnStartRequest() runs. The request's status is NS_BINDING_ABORTED. The content length of the http channel is -1. This has the effect of causing dataIsBounded to be false, so we call mDecoder->SetInfinite(true) near the end of OnStartRequest().
* test_bug868942 runs the vp9.webm case, clones the ChannelMediaResource, and copies the isFinite property. When the test calls MediaDecoder::GetDuration(), because MediaDecoder::mInfiniteStream was set to true during the clone, we'll return +Inf for the duration, causing the assert/failure.

I'm not sure what the *correct* solution is, but returning failure when the request's status is NS_BINDING_ABORTED in ChannelMediaResource::OnStartRequest() stops the failure and doesn't seem to cause any orange locally for me. Calling CloseChannel() in this case doesn't cause any further problems, so I think we should do this to ensure we're tidied up in this case.
Attached patch PatchSplinter Review
Close the channel in ChannelMediaResource::OnStartRequest() and bail out if the connection was aborted. This prevents metadata about the closed channel from percolating across to cloned resources, which is causing the failure here.
Assignee: chris.double → cpearce
Status: NEW → ASSIGNED
Attachment #8375292 - Flags: review?(roc)
https://hg.mozilla.org/integration/mozilla-inbound/rev/3f29a6bc0557

Please leave open until orange confirmed fixed.
Whiteboard: [leave-open]
No orange for 10 days, I declare victory.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
\m/

Now can we request approval for Aurora/Beta/b2g26 uplift pretty please? :D
Whiteboard: [leave-open]
Target Milestone: --- → mozilla30
Sure. This patch should apply cleanly, the code in question doesn't change much. It's low risk.
Comment on attachment 8375292 [details] [diff] [review]
Patch

[Approval Request Comment]
Bug caused by (feature/regressing bug #): Dunno
User impact if declined: Lots of orange failures. Sheriffs will be sadface. Also, sometimes the duration of a <video> or <audio> element will be mis-reported in certain (rare) circumstances.
Testing completed (on m-c, etc.): Ben on m-c for a week.
Risk to taking this patch (and alternatives if risky): Seems pretty low risk.
String or IDL/UUID changes made by this patch: none
Attachment #8375292 - Flags: approval-mozilla-beta?
Attachment #8375292 - Flags: approval-mozilla-aurora?
According to the request form, b2g26 uplift is for security sensitive patches only, and this isn't security sensitive.
Fair enough. If it was a test-only fix, I'd just land it there, but since it isn't, we can just call it wontfix and move on with life.
Attachment #8375292 - Flags: approval-mozilla-beta?
Attachment #8375292 - Flags: approval-mozilla-beta+
Attachment #8375292 - Flags: approval-mozilla-aurora?
Attachment #8375292 - Flags: approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.