Closed Bug 1124952 Opened 5 years ago Closed 5 years ago

Assertion failure: !IsExclusive || !mHaveConsumer, at ../../../dist/include/MediaPromise.h:248

Categories

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

x86
macOS
defect

Tracking

()

RESOLVED FIXED
mozilla38
Tracking Status
firefox36 --- fixed
firefox37 --- fixed
firefox38 --- fixed

People

(Reporter: jya, Assigned: bholley)

References

(Blocks 1 open bug)

Details

Attachments

(5 files)

Attached file backtrace.txt
Just pulled from nightly.

And I get this a lot.
(lldb) bt
* thread #98: tid = 0x4d0c6c, 0x00000001062f6164 XUL`void mozilla::MediaPromise<nsRefPtr<mozilla::AudioData>, mozilla::MediaDecoderReader::NotDecodedReason, true>::Then<mozilla::MediaTaskQueue, mozilla::MediaSourceReader, void (this=0x000000013705e860, aResponseTarget=0x00000001377da7a0, aCallSite=0x000000010990228a, aThisVal=0x000000014242d400, aResolveMethod=0x00000001062e88e0, aRejectMethod=0x00000001062e8ae0)(mozilla::AudioData*), void (mozilla::MediaSourceReader::*)(mozilla::MediaDecoderReader::NotDecodedReason)>(mozilla::MediaTaskQueue*, char const*, mozilla::MediaSourceReader*, void (mozilla::MediaSourceReader::*)(mozilla::AudioData*), void (mozilla::MediaSourceReader::*)(mozilla::MediaDecoderReader::NotDecodedReason)) + 212 at MediaPromise.h:248, name = 'Media Decode #3', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x00000001062f6164 XUL`void mozilla::MediaPromise<nsRefPtr<mozilla::AudioData>, mozilla::MediaDecoderReader::NotDecodedReason, true>::Then<mozilla::MediaTaskQueue, mozilla::MediaSourceReader, void (this=0x000000013705e860, aResponseTarget=0x00000001377da7a0, aCallSite=0x000000010990228a, aThisVal=0x000000014242d400, aResolveMethod=0x00000001062e88e0, aRejectMethod=0x00000001062e8ae0)(mozilla::AudioData*), void (mozilla::MediaSourceReader::*)(mozilla::MediaDecoderReader::NotDecodedReason)>(mozilla::MediaTaskQueue*, char const*, mozilla::MediaSourceReader*, void (mozilla::MediaSourceReader::*)(mozilla::AudioData*), void (mozilla::MediaSourceReader::*)(mozilla::MediaDecoderReader::NotDecodedReason)) + 212 at MediaPromise.h:248
    frame #1: 0x00000001062e889d XUL`mozilla::MediaSourceReader::RequestAudioDataComplete(this=0x000000014242d400, aTime=0) + 189 at MediaSourceReader.cpp:145
    frame #2: 0x00000001062e84df XUL`mozilla::MediaSourceReader::RequestAudioData(this=0x000000014242d400) + 719 at MediaSourceReader.cpp:137
    frame #3: 0x00000001061f71fd XUL`mozilla::MediaDecoderStateMachine::DecodeAudio(this=0x000000014242d800) + 557 at MediaDecoderStateMachine.cpp:734
    frame #4: 0x000000010625769e XUL`nsRunnableMethodImpl<void (this=0x0000000100403b80)(), void, true>::Run() + 190 at nsThreadUtils.h:386
    frame #5: 0x00000001062234b9 XUL`mozilla::MediaTaskQueue::Runner::Run(this=0x0000000137ad36c0) + 633 at MediaTaskQueue.cpp:230
    frame #6: 0x0000000103706e07 XUL`nsThreadPool::Run(this=0x00000001429d8660) + 967 at nsThreadPool.cpp:225
    frame #7: 0x0000000103706efc XUL`non-virtual thunk to nsThreadPool::Run(this=0x00000001429d8668) + 28 at nsThreadPool.cpp:239
    frame #8: 0x0000000103703868 XUL`nsThread::ProcessNextEvent(this=0x0000000141c6a4c0, aMayWait=false, aResult=0x0000000129cdec4e) + 2088 at nsThread.cpp:855
    frame #9: 0x000000010375d847 XUL`NS_ProcessNextEvent(aThread=0x0000000141c6a4c0, aMayWait=false) + 151 at nsThreadUtils.cpp:265
    frame #10: 0x0000000103d8d7a3 XUL`mozilla::ipc::MessagePumpForNonMainThreads::Run(this=0x000000012a8e5ac0, aDelegate=0x0000000137980280) + 691 at MessagePump.cpp:339
    frame #11: 0x0000000103d22e35 XUL`MessageLoop::RunInternal(this=0x0000000137980280) + 117 at message_loop.cc:233
    frame #12: 0x0000000103d22d45 XUL`MessageLoop::RunHandler(this=0x0000000137980280) + 21 at message_loop.cc:226
    frame #13: 0x0000000103d22ced XUL`MessageLoop::Run(this=0x0000000137980280) + 45 at message_loop.cc:200
    frame #14: 0x0000000103701cf6 XUL`nsThread::ThreadFunc(aArg=0x0000000141c6a4c0) + 358 at nsThread.cpp:356
    frame #15: 0x0000000103371daf libnss3.dylib`_pt_root(arg=0x00000001234c08d0) + 463 at ptthread.c:212
    frame #16: 0x00007fff94fec2fc libsystem_pthread.dylib`_pthread_body + 131
    frame #17: 0x00007fff94fec279 libsystem_pthread.dylib`_pthread_start + 176
    frame #18: 0x00007fff94fea4b1 libsystem_pthread.dylib`thread_start + 13
here mHaveConsumer = true and IsExclusive = true.

I had another one after leaving nightly idle for almost an hour (playing an hour long video)
this on in RequestVideoData

all the other happened in DecodeAudio

(lldb) bt
* thread #193: tid = 0x5d5156, 0x00000001062f6494 XUL`void mozilla::MediaPromise<nsRefPtr<mozilla::VideoData>, mozilla::MediaDecoderReader::NotDecodedReason, true>::Then<mozilla::MediaTaskQueue, mozilla::MediaSourceReader, void (this=0x000000012b203190, aResponseTarget=0x000000012e82dcc0, aCallSite=0x00000001098f65d6, aThisVal=0x000000012e105400, aResolveMethod=0x00000001062e9940, aRejectMethod=0x00000001062e9b70)(mozilla::VideoData*), void (mozilla::MediaSourceReader::*)(mozilla::MediaDecoderReader::NotDecodedReason)>(mozilla::MediaTaskQueue*, char const*, mozilla::MediaSourceReader*, void (mozilla::MediaSourceReader::*)(mozilla::VideoData*), void (mozilla::MediaSourceReader::*)(mozilla::MediaDecoderReader::NotDecodedReason)) + 212 at MediaPromise.h:248, name = 'Media Decode #3', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x00000001062f6494 XUL`void mozilla::MediaPromise<nsRefPtr<mozilla::VideoData>, mozilla::MediaDecoderReader::NotDecodedReason, true>::Then<mozilla::MediaTaskQueue, mozilla::MediaSourceReader, void (this=0x000000012b203190, aResponseTarget=0x000000012e82dcc0, aCallSite=0x00000001098f65d6, aThisVal=0x000000012e105400, aResolveMethod=0x00000001062e9940, aRejectMethod=0x00000001062e9b70)(mozilla::VideoData*), void (mozilla::MediaSourceReader::*)(mozilla::MediaDecoderReader::NotDecodedReason)>(mozilla::MediaTaskQueue*, char const*, mozilla::MediaSourceReader*, void (mozilla::MediaSourceReader::*)(mozilla::VideoData*), void (mozilla::MediaSourceReader::*)(mozilla::MediaDecoderReader::NotDecodedReason)) + 212 at MediaPromise.h:248
    frame #1: 0x00000001062e95dc XUL`mozilla::MediaSourceReader::RequestVideoData(this=0x000000012e105400, aSkipToNextKeyframe=false, aTimeThreshold=0) + 1116 at MediaSourceReader.cpp:276
    frame #2: 0x00000001061f64d1 XUL`mozilla::MediaDecoderStateMachine::DecodeVideo(this=0x000000012e108400) + 737 at MediaDecoderStateMachine.cpp:689
    frame #3: 0x00000001062578fe XUL`nsRunnableMethodImpl<void (this=0x000000012ed17c40)(), void, true>::Run() + 190 at nsThreadUtils.h:386
    frame #4: 0x0000000106223719 XUL`mozilla::MediaTaskQueue::Runner::Run(this=0x00000001297af320) + 633 at MediaTaskQueue.cpp:230
    frame #5: 0x0000000103707067 XUL`nsThreadPool::Run(this=0x000000012aa34060) + 967 at nsThreadPool.cpp:225
    frame #6: 0x000000010370715c XUL`non-virtual thunk to nsThreadPool::Run(this=0x000000012aa34068) + 28 at nsThreadPool.cpp:239
    frame #7: 0x0000000103703ac8 XUL`nsThread::ProcessNextEvent(this=0x000000012fd404c0, aMayWait=false, aResult=0x0000000141d40c4e) + 2088 at nsThread.cpp:855
    frame #8: 0x000000010375daa7 XUL`NS_ProcessNextEvent(aThread=0x000000012fd404c0, aMayWait=false) + 151 at nsThreadUtils.cpp:265
    frame #9: 0x0000000103d8da03 XUL`mozilla::ipc::MessagePumpForNonMainThreads::Run(this=0x00000001405fea00, aDelegate=0x0000000130a7c410) + 691 at MessagePump.cpp:339
    frame #10: 0x0000000103d23095 XUL`MessageLoop::RunInternal(this=0x0000000130a7c410) + 117 at message_loop.cc:233
    frame #11: 0x0000000103d22fa5 XUL`MessageLoop::RunHandler(this=0x0000000130a7c410) + 21 at message_loop.cc:226
    frame #12: 0x0000000103d22f4d XUL`MessageLoop::Run(this=0x0000000130a7c410) + 45 at message_loop.cc:200
    frame #13: 0x0000000103701f56 XUL`nsThread::ThreadFunc(aArg=0x000000012fd404c0) + 358 at nsThread.cpp:356
    frame #14: 0x0000000103371daf libnss3.dylib`_pt_root(arg=0x000000012fce0370) + 463 at ptthread.c:212
    frame #15: 0x00007fff94fec2fc libsystem_pthread.dylib`_pthread_body + 131
    frame #16: 0x00007fff94fec279 libsystem_pthread.dylib`_pthread_start + 176
    frame #17: 0x00007fff94fea4b1 libsystem_pthread.dylib`thread_start + 13
(lldb)
Blocks: 1123983
Priority: -- → P1
I haven't been able to reproduce. NI jya for a log.
Flags: needinfo?(jyavenard)
Attached file log3.txt
this is the last log of when I had it happened. Unfortunately, my level of verbosity at the time wasn't what you would have wanted
Flags: needinfo?(jyavenard)
Attached file log2.txt
an earlier one
Attached file log1.txt
and another
Blocks: 1123923
Oh. Duh.
Assignee: nobody → bobbyholley
Comment on attachment 8554726 [details] [diff] [review]
Set request status to Pending in the special DecodeFirstFrame calls too. v1

Review of attachment 8554726 [details] [diff] [review]:
-----------------------------------------------------------------

I wish we had a way to automatically ensure this pending state was set or inferred correctly; we just got bitten by it in bug 1125472.
Attachment #8554726 - Flags: review?(cpearce) → review+
(In reply to Bobby Holley (Busy with media, don't ask for DOM/JS/XPConnect things) from comment #9)
> https://treeherder.mozilla.org/#/jobs?repo=try&revision=dbf79801f4de

At least one set of media tests have come back green, and everything else seems pretty backlogged. Given how safe this patch is I'm just canceling the rest of the try push and pushing to inbound:

https://hg.mozilla.org/integration/mozilla-inbound/rev/139b3e52f9fe
https://hg.mozilla.org/mozilla-central/rev/139b3e52f9fe
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
Comment on attachment 8554726 [details] [diff] [review]
Set request status to Pending in the special DecodeFirstFrame calls too. v1

Approval Request Comment
[Feature/regressing bug #]: MSE
[User impact if declined]: Possible video playback stalls or crashes.
[Describe test coverage new/current, TreeHerder]: Landed on m-c.
[Risks and why]: This affects all media playback, but is a small and isolated fix. I'd say risk is low.
[String/UUID change made/needed]: None.
Attachment #8554726 - Flags: approval-mozilla-beta?
Attachment #8554726 - Flags: approval-mozilla-aurora?
Attachment #8554726 - Flags: approval-mozilla-beta?
Attachment #8554726 - Flags: approval-mozilla-beta+
Attachment #8554726 - Flags: approval-mozilla-aurora?
Attachment #8554726 - Flags: approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.