Closed
Bug 1152148
Opened 9 years ago
Closed 8 years ago
[EME] crash accessing invalid SourceBuffer in test_eme_stream_capture_blocked with --e10s
Categories
(Core :: Audio/Video: Playback, defect, P2)
Tracking
()
RESOLVED
FIXED
People
(Reporter: cpearce, Unassigned)
References
(Blocks 1 open bug)
Details
I got a tab crash on Windows 8.1 x64 mochitests with e10s enabled: $ ./mach mochitest-plain dom/media/test/test_eme_* --e10s --run-until-failure --repeat 100000 JavaScript error: http://mochi.test:8888/tests/dom/media/test/eme.js, line 183: InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable 58657 ERROR [SimpleTest.finish()] this test already called finish! 58658 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58659 INFO [13:26:39.808] bipbop-cenc-videoinit.mp4-1_case3 video: fetch of http://test2.mochi.test:8888/tests/dom/media/test/allowed.sjs?bipbop-cenc-video2.m4s complete, appending JavaScript error: http://mochi.test:8888/tests/dom/media/test/eme.js, line 183: InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable 58660 ERROR [SimpleTest.finish()] this test already called finish! 58661 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58662 INFO [13:26:39.942] bipbop-cenc-videoinit.mp4-2_case1 progress 58663 INFO [13:26:39.944] bipbop-cenc-videoinit.mp4-2_case3 progress #01: mozilla::ipc::MessageChannel::CxxStackFrame::CxxStackFrame (c:\users\cpearce\src\mozilla\purple\ipc\glue\messagechannel.cpp:221) #02: mozilla::ipc::MessageChannel::Send (c:\users\cpearce\src\mozilla\purple\ipc\glue\messagechannel.cpp:537) #03: mozilla::gmp::PGMPVideoDecoderParent::SendDecodingComplete (c:\users\cpearce\src\mozilla\purple\objdir\ipc\ipdl\pgmpvideodecoderparent.cpp:156) #04: mozilla::gmp::GMPVideoDecoderParent::Shutdown (c:\users\cpearce\src\mozilla\purple\dom\media\gmp\gmpvideodecoderparent.cpp:216) #05: mozilla::gmp::GMPVideoDecoderParent::Close (c:\users\cpearce\src\mozilla\purple\dom\media\gmp\gmpvideodecoderparent.cpp:82) #06: mozilla::GMPVideoDecoder::Shutdown (c:\users\cpearce\src\mozilla\purple\dom\media\fmp4\gmp\gmpvideodecoder.cpp:294) #07: nsRunnableMethodArguments<>::apply<mozilla::MediaDataDecoder,enum nsresult (__thiscall mozilla::MediaDataDecoder::*)(void)> (c:\users\cpearce\src\mozilla\purple\objdir\dist\include\nsthreadutils. h:575) #08: nsRunnableMethodImpl<enum nsresult (__thiscall mozilla::MediaDataDecoder::*)(void),1>::Run (c:\users\cpearce\src\mozilla\purple\objdir\dist\include\nsthreadutils.h:668) #09: nsThreadSyncDispatch::Run (c:\users\cpearce\src\mozilla\purple\xpcom\threads\nsthread.cpp:1130) #10: nsThread::ProcessNextEvent (c:\users\cpearce\src\mozilla\purple\xpcom\threads\nsthread.cpp:866) #11: NS_ProcessNextEvent (c:\users\cpearce\src\mozilla\purple\xpcom\glue\nsthreadutils.cpp:265) #12: mozilla::ipc::MessagePumpForNonMainThreads::Run (c:\users\cpearce\src\mozilla\purple\ipc\glue\messagepump.cpp:368) #13: MessageLoop::RunInternal (c:\users\cpearce\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc:234) #14: MessageLoop::RunHandler (c:\users\cpearce\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc:227) #15: MessageLoop::Run (c:\users\cpearce\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc:201) #16: nsThread::ThreadFunc (c:\users\cpearce\src\mozilla\purple\xpcom\threads\nsthread.cpp:366) #17: _PR_NativeRunThread (c:\users\cpearce\src\mozilla\purple\nsprpub\pr\src\threads\combined\pruthr.c:397) #18: pr_root (c:\users\cpearce\src\mozilla\purple\nsprpub\pr\src\md\windows\w95thred.c:90) #19: _get_flsindex[MSVCR120 +0x2c01d] #20: _get_flsindex[MSVCR120 +0x2c001] #21: BaseThreadInitThunk[KERNEL32 +0x17c04] #22: RtlInitializeExceptionChain[ntdll +0x5b54f] #23: RtlInitializeExceptionChain[ntdll +0x5b51a] ###!!! [Parent][MessageChannel] Error: Channel error: cannot send/recv ###!!! [Child][OnMaybeDequeueOne] Error: Channel closing: too late to send/recv, messages will be lost Fail log: TEST-INFO | leakcheck | tab process: ignoring missing output line for total leaks runtests.py | Running tests: end. The following tests failed: 58664 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_stream_capture_blocked.html | bipbop-cenc-videoinit.mp4-2_case2: session.generateRequest failed; InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable - expected PASS 58665 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_stream_capture_blocked.html | bipbop-cenc-videoinit.mp4-0_case2 got error event; [object Event] - expected PASS 58666 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58667 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_stream_capture_blocked.html | bipbop-cenc-videoinit.mp4-0_case3 got error event; [object Event] - expected PASS 58668 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58669 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_stream_capture_blocked.html | bipbop-cenc-videoinit.mp4-1_case2 got error event; [object Event] - expected PASS 58670 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58671 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_stream_capture_blocked.html | bipbop-cenc-videoinit.mp4-1_case3 got error event; [object Event] - expected PASS 58672 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58673 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_stream_capture_blocked.html | bipbop-cenc-videoinit.mp4-2_case2 got error event; [object Event] - expected PASS 58674 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58675 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | This test left crash dumps behind, but we weren't expecting it to! TEST-INFO 58676 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58677 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58678 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO 58679 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_stream_capture_blocked.html | called finish() multiple times TEST-INFO SUITE-END | took 1884s I'm guessing this is caused by interacting with a SourceBuffer after it's been detached. The JS code is in AppendTrack.addNextFragment in the XHR request's "load" event handler: req.addEventListener("load", function() { Log(token, track.name + ": fetch of " + fragmentFile + " complete, appending"); sb.appendBuffer(new Uint8Array(req.response)); });
Updated•9 years ago
|
Component: Audio/Video → Audio/Video: Playback
Reporter | ||
Comment 2•8 years ago
|
||
I left test_eme_* running over the weekend and hit no failures, so I'll call this fixed.
Status: NEW → RESOLVED
Closed: 8 years ago
Flags: needinfo?(peterv)
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•