Closed Bug 1134922 Opened 10 years ago Closed 10 years ago

[EME] CDM crash in test_eme_playback.html

Categories

(Core :: Audio/Video, defect, P2)

x86_64
Windows 8.1
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: cpearce, Unassigned)

References

Details

(Keywords: crash)

When I loop on test_eme_playback, the CDM crashes after a while, and gecko crashed with a null pointer deref. The CDM should not crash, and when it does, Gecko should not crash. ./mach mochitest-plain dom/media/test/test_eme_playback.html --run-until-failure --repeat 1000000 2048 INFO TEST-START | dom/media/test/test_eme_playback.html ++DOMWINDOW == 14 (12253800) [pid = 5660] [serial = 35] [outer = 202BD800] [5660] WARNING: Failed to unlock the wakelock.: '!rv.Failed()', file c:\Users\cpearce\src\mozilla\purple\dom\html\HTMLMediaElement.cpp, line 2351 2049 INFO TEST-PASS | dom/media/test/test_eme_playback.html | A valid string reason is expected 2050 INFO TEST-PASS | dom/media/test/test_eme_playback.html | Reason cannot be empty 2051 INFO Started Thu Feb 19 2015 17:05:41 GMT+1300 (New Zealand Standard Time) (1424318741.549s) 2052 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [started short-cenc.mp4-0] Length of array should match number of running tests 2053 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [started short-cenc.mp4-1] Length of array should match number of running tests 2054 INFO [17:05:41.576] short-cenc.mp4-0 loadstart 2055 INFO [17:05:41.577] short-cenc.mp4-1 loadstart 2056 INFO [17:05:41.582] short-cenc.mp4-0 play 2057 INFO [17:05:41.583] short-cenc.mp4-0 waiting 2058 INFO [17:05:41.584] short-cenc.mp4-1 play 2059 INFO [17:05:41.584] short-cenc.mp4-1 waiting W/MPEG4Extractor( 5660): Error -1004 parsing chuck at offset 0 looking for first track I/SampleTable( 5660): There are reordered frames present. 2060 INFO [17:05:41.597] short-cenc.mp4-0 progress 2061 INFO [17:05:41.598] short-cenc.mp4-0 progress 2062 INFO [17:05:41.599] short-cenc.mp4-0 suspend 2063 INFO [17:05:41.600] short-cenc.mp4-0 got encrypted event file=[xpconnect wrapped nsILocalFile @ 0xac6b280 (native @ 0xac543a0)] [3644] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file c:\Users\cpearce\src\mozilla\purple\xpcom\base\nsTraceRefcnt.cpp, line 139 [3644] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file c:\Users\cpearce\src\mozilla\purple\xpcom\base\nsTraceRefcnt.cpp, line 139 [3644] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file c:\Users\cpearce\src\mozilla\purple\xpcom\base\nsTraceRefcnt.cpp, line 139 [3644] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file c:\Users\cpearce\src\mozilla\purple\xpcom\base\nsTraceRefcnt.cpp, line 139 [3644] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file c:\Users\cpearce\src\mozilla\purple\xpcom\base\nsTraceRefcnt.cpp, line 139 ### XPCOM_MEM_BLOAT_LOG defined -- unable to log bloat/leaks to c:\users\cpearce\appdata\local\temp\tmpfasytx.mozrunner\runtests_leaks_geckomediaplugin_pid3644.log [3644] WARNING: Could not setup crash reporting : file c:/Users/cpearce/src/mozilla/purple/toolkit/xre/nsEmbedFunctions.cpp, line 407 [3644] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file c:\Users\cpearce\src\mozilla\purple\xpcom\base\nsTraceRefcnt.cpp, line 139 [3644] WARNING: XPCOM objects created/destroyed from static ctor/dtor: file c:\Users\cpearce\src\mozilla\purple\xpcom\base\nsTraceRefcnt.cpp, line 139 [GMP 3644] WARNING: '!compMgr', file c:/Users/cpearce/src/mozilla/purple/xpcom/glue/nsComponentManagerUtils.cpp, line 63 [GMP 3644] WARNING: NS_ENSURE_TRUE(InitStaticMembers()) failed: file c:\Users\cpearce\src\mozilla\purple\modules\libpref\Preferences.cpp, line 1384 2064 INFO [17:05:41.632] short-cenc.mp4-0 created MediaKeys object ok [GMP 3644] WARNING: PreLoadSandboxVoucher can't find sandbox voucher file!: file c:\Users\cpearce\src\mozilla\purple\dom\media\gmp\GMPChild.cpp, line 754 2065 INFO [17:05:41.634] short-cenc.mp4-0 set MediaKeys on <video> element ok 2066 INFO [17:05:41.636] short-cenc.mp4-0 Set 7e571d017e571d017e571d017e571d01 to false in session.keyIdsReceived 2067 INFO [17:05:41.637] short-cenc.mp4-0 Set 7e571d027e571d027e571d027e571d02 to false in session.keyIdsReceived 2068 INFO [17:05:41.641] short-cenc.mp4-0 got message from CDM: { "kids":["flcdAX5XHQF-Vx0BflcdAQ","flcdAn5XHQJ-Vx0CflcdAg"], "type":"temporary"} 2069 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.642] short-cenc.mp4-0 key session type should match 2070 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.643] short-cenc.mp4-0 message event should contain key ID array 2071 INFO [17:05:41.647] short-cenc.mp4-0 found key 7e5711117e5711117e5711117e571111 for key id 7e571d017e571d017e571d017e571d01 2072 INFO [17:05:41.650] short-cenc.mp4-0 found key 7e5722227e5722227e5722227e572222 for key id 7e571d027e571d027e571d027e571d02 2073 INFO [17:05:41.651] short-cenc.mp4-0 sending update message to CDM: {"keys":[{"kty":"oct","alg":"A128KW","kid":"flcdAX5XHQF-Vx0BflcdAQ","k":"flcREX5XERF-VxERflcREQ"},{"kty":"oct","alg":"A128KW"," kid":"flcdAn5XHQJ-Vx0CflcdAg","k":"flciIn5XIiJ-VyIiflciIg"}],"type":"temporary"} 2074 INFO [17:05:41.656] short-cenc.mp4-0 loadedmetadata 2075 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.657] short-cenc.mp4-0 isEncrypted should be true 2076 INFO TEST-PASS | dom/media/test/test_eme_playback.html | isEncrypted should not be accessible from content W/MPEG4Extractor( 5660): Error -1004 parsing chuck at offset 0 looking for first track I/SampleTable( 5660): There are reordered frames present. 2077 INFO [17:05:41.674] short-cenc.mp4-1 progress 2078 INFO [17:05:41.675] short-cenc.mp4-1 got encrypted event 2079 INFO [17:05:41.678] short-cenc.mp4-1 created MediaKeys object ok 2080 INFO [17:05:41.680] short-cenc.mp4-1 set MediaKeys on <video> element ok 2081 INFO [17:05:41.681] short-cenc.mp4-1 Set 7e571d017e571d017e571d017e571d01 to false in session.keyIdsReceived 2082 INFO [17:05:41.681] short-cenc.mp4-1 Set 7e571d027e571d027e571d027e571d02 to false in session.keyIdsReceived 2083 INFO [17:05:41.704] short-cenc.mp4-1 progress 2084 INFO [17:05:41.704] short-cenc.mp4-1 suspend [GMP 3644] WARNING: '!compMgr', file c:/Users/cpearce/src/mozilla/purple/xpcom/glue/nsComponentManagerUtils.cpp, line 63 2085 INFO [17:05:41.731] short-cenc.mp4-0 MediaKeySession update ok! 2086 INFO [17:05:41.732] short-cenc.mp4-0 : session.generateRequest succeeded 2087 INFO TEST-PASS | dom/media/test/test_eme_playback.html | short-cenc.mp4-0: key status should be usable 2088 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.736] short-cenc.mp4-0 session.keyIdsReceived contained 7e571d017e571d017e571d017e571d01 as expected. [5660] WARNING: '!stream->LastReadFailed(&failure)', file c:/Users/cpearce/src/mozilla/purple/dom/media/fmp4/MP4Reader.cpp, line 117 2089 INFO TEST-PASS | dom/media/test/test_eme_playback.html | short-cenc.mp4-0: key status should be usable 2090 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.742] short-cenc.mp4-0 session.keyIdsReceived contained 7e571d027e571d027e571d027e571d02 as expected. 2091 INFO TEST-PASS | dom/media/test/test_eme_playback.html | short-cenc.mp4-0: key status should be usable 2092 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.744] short-cenc.mp4-0 session.keyIdsReceived contained 7e571d017e571d017e571d017e571d01 as expected. 2093 INFO TEST-PASS | dom/media/test/test_eme_playback.html | short-cenc.mp4-0: key status should be usable 2094 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.746] short-cenc.mp4-0 session.keyIdsReceived contained 7e571d027e571d027e571d027e571d02 as expected. 2095 INFO [17:05:41.747] short-cenc.mp4-1 got message from CDM: { "kids":["flcdAX5XHQF-Vx0BflcdAQ","flcdAn5XHQJ-Vx0CflcdAg"], "type":"temporary"} 2096 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.748] short-cenc.mp4-1 key session type should match 2097 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.748] short-cenc.mp4-1 message event should contain key ID array 2098 INFO [17:05:41.749] short-cenc.mp4-1 found key 7e5711117e5711117e5711117e571111 for key id 7e571d017e571d017e571d017e571d01 2099 INFO [17:05:41.750] short-cenc.mp4-1 found key 7e5722227e5722227e5722227e572222 for key id 7e571d027e571d027e571d027e571d02 2100 INFO [17:05:41.751] short-cenc.mp4-1 sending update message to CDM: {"keys":[{"kty":"oct","alg":"A128KW","kid":"flcdAX5XHQF-Vx0BflcdAQ","k":"flcREX5XERF-VxERflcREQ"},{"kty":"oct","alg":"A128KW"," kid":"flcdAn5XHQJ-Vx0CflcdAg","k":"flciIn5XIiJ-VyIiflciIg"}],"type":"temporary"} 2101 INFO [17:05:41.755] short-cenc.mp4-1 loadedmetadata 2102 INFO TEST-PASS | dom/media/test/test_eme_playback.html | [17:05:41.756] short-cenc.mp4-1 isEncrypted should be true 2103 INFO TEST-PASS | dom/media/test/test_eme_playback.html | isEncrypted should not be accessible from content 2104 INFO [17:05:41.758] short-cenc.mp4-0 loadeddata 2105 INFO [17:05:41.758] short-cenc.mp4-0 canplay 2106 INFO [17:05:41.759] short-cenc.mp4-0 playing 2107 INFO [17:05:41.760] short-cenc.mp4-0 canplaythrough Assertion failure: (mPlanes.RemoveElement(aPlane)), at c:\Users\cpearce\src\mozilla\purple\dom\media\gmp\GMPVideoHost.cpp:111 #01: NS_LogInit[xul +0x2b84e60] #02: NS_LogInit[xul +0x2b8520b] #03: NS_LogInit[xul +0x2b858cf] #04: NS_LogInit[xul +0x2b8769a] #05: NS_LogInit[xul +0x2b87582] #06: GMPGetAPI[clearkey +0x21b5c] #07: NS_LogInit[xul +0x2b7e5fa] #08: NS_LogInit[xul +0x2b59bc9] #09: NS_LogInit[xul +0x2b7e0ca] #10: NS_LogInit[xul +0x98ae84] #11: NS_LogInit[xul +0x984146] #12: NS_LogInit[xul +0x98502d] #13: NS_LogInit[xul +0x98aaa2] #14: NS_LogInit[xul +0x98ae1d] #15: NS_LogInit[xul +0x98ad92] #16: NS_LogInit[xul +0x98a99d] #17: NS_LogInit[xul +0x4160b61] #18: TargetNtMapViewOfSection[plugin-container +0x1fd24] #19: TargetNtMapViewOfSection[plugin-container +0x1f5b0] #20: TargetNtMapViewOfSection[plugin-container +0x2046e] #21: TargetNtMapViewOfSection[plugin-container +0xb7c14] #22: BaseThreadInitThunk[KERNEL32 +0x17c04] #23: RtlInitializeExceptionChain[ntdll +0x5b5af] #24: RtlInitializeExceptionChain[ntdll +0x5b57a] [5660] WARNING: AAC GMP decoder terminated.: file c:\Users\cpearce\src\mozilla\purple\dom\media\fmp4\gmp\GMPAudioDecoder.cpp, line 119 [5660] WARNING: AAC GMP decoder terminated.: file c:\Users\cpearce\src\mozilla\purple\dom\media\fmp4\gmp\GMPAudioDecoder.cpp, line 119 [5660] WARNING: Decoder=f777a0 Decode error, changed state to SHUTDOWN due to error: file c:\Users\cpearce\src\mozilla\purple\dom\media\MediaDecoderStateMachine.cpp, line 2160 [5660] WARNING: Decoder=122de5b0 Decode error, changed state to SHUTDOWN due to error: file c:\Users\cpearce\src\mozilla\purple\dom\media\MediaDecoderStateMachine.cpp, line 2160 [5660] WARNING: CDM terminated: file c:\Users\cpearce\src\mozilla\purple\dom\media\eme\CDMProxy.cpp, line 591 [5660] WARNING: H.264 GMP decoder terminated.: file c:\Users\cpearce\src\mozilla\purple\dom\media\fmp4\gmp\GMPVideoDecoder.cpp, line 100 [5660] WARNING: H.264 GMP decoder terminated.: file c:\Users\cpearce\src\mozilla\purple\dom\media\fmp4\gmp\GMPVideoDecoder.cpp, line 100 ###!!! [Parent][MessageChannel] Error: Channel error: cannot send/recv [5660] WARNING: GMP crash without crash report: file c:\Users\cpearce\src\mozilla\purple\dom\media\gmp\GMPParent.cpp, line 637 [5660] WARNING: Unable to terminate process: 5: file c:/Users/cpearce/src/mozilla/purple/ipc/chromium/src/base/process_util_win.cc, line 375 [5660] WARNING: CDM terminated: file c:\Users\cpearce\src\mozilla\purple\dom\media\eme\CDMProxy.cpp, line 591 2108 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_playback.html | short-cenc.mp4-1 MediaKeySession update failed; InvalidStateError: An attempt was made to use an object that is not, or is no l onger, usable - expected PASS 2109 INFO InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable 2110 INFO MEMORY STAT vsize after test: 670244864 2111 INFO MEMORY STAT vsizeMaxContiguous after test: 1893662720 2112 INFO MEMORY STAT residentFast after test: 271589376 2113 INFO MEMORY STAT heapAllocated after test: 39532152 ###!!! [Parent][MessageChannel] Error: Channel error: cannot send/recv [5660] WARNING: Trying to use an dead GMP video decoder: file c:\Users\cpearce\src\mozilla\purple\dom\media\gmp\GMPVideoDecoderParent.cpp, line 153 ###!!! [Parent][MessageChannel] Error: Channel error: cannot send/recv [5660] WARNING: Trying to use a dead GMP Audio decoder!: file c:\Users\cpearce\src\mozilla\purple\dom\media\gmp\GMPAudioDecoderParent.cpp, line 106 2114 INFO [17:05:41.924] short-cenc.mp4-0 error [5660] WARNING: Trying to use an dead GMP video decoder: file c:\Users\cpearce\src\mozilla\purple\dom\media\gmp\GMPVideoDecoderParent.cpp, line 153 [5660] WARNING: Trying to use a dead GMP Audio decoder!: file c:\Users\cpearce\src\mozilla\purple\dom\media\gmp\GMPAudioDecoderParent.cpp, line 106 [5660] WARNING: Trying to use a dead GMP Audio decoder!: file c:\Users\cpearce\src\mozilla\purple\dom\media\gmp\GMPAudioDecoderParent.cpp, line 106 [5660] ###!!! ASSERTION: You can't dereference a NULL nsRefPtr with operator->().: 'mRawPtr != 0', file c:\Users\cpearce\src\mozilla\purple\xpcom\base\nsRefPtr.h, line 236 2115 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_playback.html | short-cenc.mp4-0 got error event; [object Event] - expected PASS 2116 INFO [object Event] 2117 ERROR [SimpleTest.finish()] this test already called finish! 2118 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_playback.html | called finish() multiple times TEST-INFO took 729ms 2119 INFO [17:05:41.934] short-cenc.mp4-1 error 2120 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_playback.html | short-cenc.mp4-1 got error event; [object Event] - expected PASS 2121 INFO [object Event] 2122 ERROR [SimpleTest.finish()] this test already called finish! 2123 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_playback.html | called finish() multiple times TEST-INFO 2124 INFO TEST-OK | dom/media/test/test_eme_playback.html | [5660] WARNING: Failed to unlock the wakelock.: '!rv.Failed()', file c:\Users\cpearce\src\mozilla\purple\dom\html\HTMLVideoElement.cpp, line 251 [5660] WARNING: Failed to unlock the wakelock.: '!rv.Failed()', file c:\Users\cpearce\src\mozilla\purple\dom\html\HTMLVideoElement.cpp, line 251 ++DOMWINDOW == 15 (12E93C00) [pid = 5660] [serial = 36] [outer = 202BD800] [5660] WARNING: Failed to unlock the wakelock.: '!rv.Failed()', file c:\Users\cpearce\src\mozilla\purple\dom\html\HTMLMediaElement.cpp, line 2351 2125 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_playback.html | Assertion count 1 is greater than expected range 0-0 assertions. TEST-INFO 2126 INFO TEST-START | Shutdown 2127 INFO Passed: 866 2128 INFO Failed: 6 2129 INFO Todo: 36 2130 INFO Slowest: 10267ms - /tests/dom/media/test/test_eme_playback.html 2131 INFO TEST-INFO | Ran 10 Loops 2132 INFO SimpleTest FINISHED #01: mozilla::gmp::GMPAudioDecoderParent::Close (c:\users\cpearce\src\mozilla\purple\dom\media\gmp\gmpaudiodecoderparent.cpp:143) #02: mozilla::GMPAudioDecoder::Shutdown (c:\users\cpearce\src\mozilla\purple\dom\media\fmp4\gmp\gmpaudiodecoder.cpp:219) #03: nsRunnableMethodImpl<enum nsresult (__thiscall mozilla::MediaDataDecoder::*)(void),void,1>::Run (c:\users\cpearce\src\mozilla\purple\objdir\dist\include\nsthreadutils.h:388) #04: nsThreadSyncDispatch::Run (c:\users\cpearce\src\mozilla\purple\xpcom\threads\nsthread.cpp:1119) #05: nsThread::ProcessNextEvent (c:\users\cpearce\src\mozilla\purple\xpcom\threads\nsthread.cpp:855) #06: NS_ProcessNextEvent (c:\users\cpearce\src\mozilla\purple\xpcom\glue\nsthreadutils.cpp:265) #07: mozilla::ipc::MessagePumpForNonMainThreads::Run (c:\users\cpearce\src\mozilla\purple\ipc\glue\messagepump.cpp:368) #08: MessageLoop::RunInternal (c:\users\cpearce\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc:234) #09: MessageLoop::RunHandler (c:\users\cpearce\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc:227) #10: MessageLoop::Run (c:\users\cpearce\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc:201) #11: nsThread::ThreadFunc (c:\users\cpearce\src\mozilla\purple\xpcom\threads\nsthread.cpp:358) #12: _PR_NativeRunThread (c:\users\cpearce\src\mozilla\purple\nsprpub\pr\src\threads\combined\pruthr.c:397) #13: pr_root (c:\users\cpearce\src\mozilla\purple\nsprpub\pr\src\md\windows\w95thred.c:90) #14: _get_flsindex[MSVCR120 +0x2c01d] #15: _get_flsindex[MSVCR120 +0x2c001] #16: BaseThreadInitThunk[KERNEL32 +0x17c04] #17: RtlInitializeExceptionChain[ntdll +0x5b5af] #18: RtlInitializeExceptionChain[ntdll +0x5b57a] TEST-INFO | Main app process: exit status 1 2133 ERROR TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_playback.html | application terminated with exit code 1 runtests.py | Application ran for: 0:01:07.985000 zombiecheck | Reading PID log: c:\users\cpearce\appdata\local\temp\tmpjl5n_npidlog PROCESS-CRASH | dom/media/test/test_eme_playback.html | application crashed [None] Crash dump filename: c:\users\cpearce\appdata\local\temp\tmpfasytx.mozrunner\minidumps\0d53a02e-2942-469d-8b8d-8059ee6a682d.dmp MINIDUMP_STACKWALK not set, can't process dump. Stopping web server Stopping web socket server Stopping ssltunnel TEST-INFO | leakcheck | default process: leak threshold set at 0 bytes TEST-INFO | leakcheck | plugin process: leak threshold set at 0 bytes TEST-INFO | leakcheck | tab process: leak threshold set at 25000 bytes TEST-INFO | leakcheck | geckomediaplugin process: leak threshold set at 20000 bytes TEST-UNEXPECTED-FAIL | leakcheck | default process: missing output line for total leaks! TEST-INFO | leakcheck | missing output line from log file c:\users\cpearce\appdata\local\temp\tmpfasytx.mozrunner\runtests_leaks.log runtests.py | Running tests: end. The following tests failed: 2134 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_playback.html | short-cenc.mp4-1 MediaKeySession update failed; InvalidStateError: An attempt was made to use an object that is not, or is no l onger, usable - expected PASS 2135 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_playback.html | short-cenc.mp4-0 got error event; [object Event] - expected PASS 2136 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_playback.html | called finish() multiple times TEST-INFO 2137 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_eme_playback.html | short-cenc.mp4-1 got error event; [object Event] - expected PASS 2138 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_playback.html | called finish() multiple times TEST-INFO 2139 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_eme_playback.html | Assertion count 1 is greater than expected range 0-0 assertions. TEST-INFO SUITE-END | took 69s
There's a few other failures in EME mochitests that need to be dealt with too...
Flags: needinfo?(edwin)
Keywords: crash
Priority: -- → P1
Priority: P1 → P2
Pretty sure this has been fixed by something.
Status: NEW → RESOLVED
Closed: 10 years ago
Flags: needinfo?(edwin)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.