Closed
Bug 1159496
Opened 9 years ago
Closed 9 years ago
test_dormant_playback.html asserts on mac
Categories
(Core :: Audio/Video, defect)
Core
Audio/Video
Tracking
()
RESOLVED
FIXED
mozilla40
Tracking | Status | |
---|---|---|
firefox40 | --- | fixed |
People
(Reporter: bholley, Assigned: jya)
References
Details
(Keywords: regression)
Attachments
(1 file, 2 obsolete files)
6.24 KB,
patch
|
Details | Diff | Splinter Review |
It looks like dormant mode is prefed on for mac, but the test is still windows/gonk only (if we're shipping this code, we should get the test turned on pronto). When I turn the test on, I get the following assertion: Assertion failure: !mConverter, at /files/mozilla/repos/cc/dom/media/fmp4/apple/AppleATDecoder.cpp:55 #01: mozilla::AppleATDecoder::~AppleATDecoder() (AppleATDecoder.cpp:55, in XUL) #02: mozilla::AppleATDecoder::~AppleATDecoder() (AppleATDecoder.cpp:56, in XUL) #03: mozilla::AppleATDecoder::~AppleATDecoder() (AppleATDecoder.cpp:53, in XUL) #04: mozilla::MediaDataDecoder::Release() (PlatformDecoderModule.h:205, in XUL) #05: nsRefPtr<mozilla::MediaDataDecoder>::assign_assuming_AddRef(mozilla::MediaDataDecoder*) (nsRefPtr.h:53, in XUL) #06: nsRefPtr<mozilla::MediaDataDecoder>& nsRefPtr<mozilla::MediaDataDecoder>::operator=<mozilla::MediaDataDecoder>(already_AddRefed<mozilla::MediaDataDecoder>&&) (nsRefPtr.h:163, in XUL) #07: mozilla::MP4Reader::EnsureDecodersSetup() (MP4Reader.cpp:556, in XUL) #08: mozilla::MP4Reader::ReadMetadata(mozilla::MediaInfo*, nsDataHashtable<nsCStringHashKey, nsCString>**) (MP4Reader.cpp:483, in XUL) #09: mozilla::MediaDecoderReader::CallReadMetadata() (MediaDecoderReader.cpp:221, in XUL) #10: mozilla::detail::MethodCallWithNoArgs<mozilla::MediaPromise<nsRefPtr<mozilla::MetadataHolder>, mozilla::ReadMetadataFailureReason, true>, mozilla::MediaDecoderReader>::Invoke() (MediaPromise.h:590, in XUL) #11: mozilla::detail::ProxyRunnable<mozilla::MediaPromise<nsRefPtr<mozilla::MetadataHolder>, mozilla::ReadMetadataFailureReason, true> >::Run() (MediaPromise.h:634, in XUL) #12: mozilla::AutoTaskDispatcher::TaskGroupRunnable::Run() (TaskDispatcher.h:177, in XUL) #13: mozilla::MediaTaskQueue::Runner::Run() (MediaTaskQueue.cpp:252, in XUL) #14: nsThreadPool::Run() (nsThreadPool.cpp:225, in XUL) #15: non-virtual thunk to nsThreadPool::Run() (nsThreadPool.cpp:239, in XUL) #16: nsThread::ProcessNextEvent(bool, bool*) (nsThread.cpp:869, in XUL) #17: NS_ProcessNextEvent(nsIThread*, bool) (nsThreadUtils.cpp:265, in XUL) #18: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) (MessagePump.cpp:356, in XUL) #19: MessageLoop::RunInternal() (message_loop.cc:234, in XUL) #20: MessageLoop::RunHandler() (message_loop.cc:227, in XUL) #21: MessageLoop::Run() (message_loop.cc:200, in XUL) #22: nsThread::ThreadFunc(void*) (nsThread.cpp:366, in XUL) #23: _pt_root (ptthread.c:215, in libnss3.dylib) #24: _pthread_body (in libsystem_pthread.dylib) + 131 #25: _pthread_body (in libsystem_pthread.dylib) + 0 TEST-INFO | Main app process: killed by SIGHUP TEST-UNEXPECTED-FAIL | dom/media/test/test_dormant_playback.html | application terminated with exit code 1 runtests.py | Application ran for: 0:00:34.835815 zombiecheck | Reading PID log: /var/folders/1p/xs6f7dfn0dncxwzhl7jhnhjh0000gn/T/tmpOWlDIlpidlog PROCESS-CRASH | dom/media/test/test_dormant_playback.html | application crashed [@ XUL + 0x3131d92]
Reporter | ||
Updated•9 years ago
|
Flags: needinfo?(jyavenard)
Assignee | ||
Comment 1•9 years ago
|
||
The regression was introduced in bug 1132832. When going into dormant mode, the video decoder is shutdown and unref. In MP4Reader::EnsureDecoderSetup() the audio decoder will be recreated ; however it hasn't been shutdown before doing so. This causes the assert
Assignee: nobody → jyavenard
Flags: needinfo?(jyavenard)
Assignee | ||
Comment 2•9 years ago
|
||
We do not want to recreate the PlatformDecoderModule coming back from dormant when content is encrypted. Also, we can't delete a MediaDataDecoder before calling Shutdown() which could have happened. In all, only create a decoder if one doesn't currently exist
Attachment #8599032 -
Flags: review?(ayang)
Assignee | ||
Updated•9 years ago
|
Depends on: 1132832
Keywords: regression
Comment 3•9 years ago
|
||
Comment on attachment 8599032 [details] [diff] [review] Ensure decoders are properly shutdown Review of attachment 8599032 [details] [diff] [review]: ----------------------------------------------------------------- Sorry for this.
Attachment #8599032 -
Flags: review?(ayang) → review+
Assignee | ||
Comment 4•9 years ago
|
||
Actually, previous patch was oncomplete. Upon the new call to MP4Reader::ReadMetadata() when coming back from dormant, we would have re-created the CallBack object. The old audio decoder would have attempted then to use the old (now deleted) callback, and it would have crashed. We only need to recreate the decoder when coming back from dormant, and only that
Assignee | ||
Updated•9 years ago
|
Attachment #8599032 -
Attachment is obsolete: true
Assignee | ||
Comment 5•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=1737f06201f1
Assignee | ||
Comment 6•9 years ago
|
||
bad rebase... missed a block
Assignee | ||
Updated•9 years ago
|
Attachment #8600758 -
Attachment is obsolete: true
Assignee | ||
Comment 7•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=4d93f61e8567
Comment 9•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/4b23f2a48e84
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox40:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
You need to log in
before you can comment on or make changes to this bug.
Description
•