Closed Bug 1181097 Opened 9 years ago Closed 9 years ago

Assertion failure: mPromisesForOperation.IsEmpty()

Categories

(Core :: Audio/Video, defect)

Unspecified
All
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla42
Tracking Status
firefox39 --- unaffected
firefox40 --- fixed
firefox41 --- fixed
firefox42 --- fixed

People

(Reporter: cbook, Assigned: padenot)

References

()

Details

(Keywords: assertion)

Attachments

(2 files)

Attached file bughunter stack
found via bughunter:

-> Load http://direkte.vg.no/studio/norway-chess-2015-6

--> Assertion failure: mPromisesForOperation.IsEmpty(), at /mozilla/builds/aurora/mozilla/dom/media/GraphDriver.cpp:553
mozilla::AudioCallbackDriver::~AudioCallbackDriver() [/mozilla/builds/aurora/mozilla/dom/media/GraphDriver.cpp:553]
#02: mozilla::AudioCallbackDriver::~AudioCallbackDriver()[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x30904e5]
#03: mozilla::AudioCallbackDriver::~AudioCallbackDriver()[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x30904b9]
mozilla::GraphDriver::Release() [/mozilla/builds/aurora/mozilla/dom/media/GraphDriver.h:86]
#05: nsRefPtr<mozilla::GraphDriver>::assign_assuming_AddRef(mozilla::GraphDriver*)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3186fc9]
#06: nsRefPtr<mozilla::GraphDriver>::assign_with_AddRef(mozilla::GraphDriver*)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x3186f7f]
#07: nsRefPtr<mozilla::GraphDriver>::operator=(mozilla::GraphDriver*)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x30e83df]
#08: mozilla::GraphDriver::SwitchAtNextIteration(mozilla::GraphDriver*)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x308e392]
#09: mozilla::MediaStreamGraphImpl::ApplyAudioContextOperationImpl(mozilla::AudioNodeStream*, mozilla::dom::AudioContextOperation, void*)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x31ae7a1]
[58851] WARNING: Failed to create NSOpenGLPixelFormat.: file /mozilla/builds/aurora/mozilla/gfx/gl/GLContextProviderCGL.mm, line 207
#10: mozilla::MediaStreamGraph::ApplyAudioContextOperation(mozilla::AudioNodeStream*, mozilla::dom::AudioContextOperation, void*)::AudioContextOperationControlMessage::Run()[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x31bbffc]
#11: mozilla::MediaStreamGraphImpl::UpdateGraph(long long)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x31a736c]
#12: mozilla::MediaStreamGraphImpl::OneIteration(long long, long long, long long, long long)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x31a7c2a]
#13: mozilla::ThreadedDriver::RunThread()[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x308ed1a]
#14: mozilla::MediaStreamGraphInitThreadRunnable::Run()[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x319f8f5]
nsThread::ProcessNextEvent(bool, bool*) [/mozilla/builds/aurora/mozilla/xpcom/threads/nsThread.cpp:849]
#16: NS_ProcessNextEvent(nsIThread*, bool)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x20de98]
#17: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x849c49]
#18: MessageLoop::RunInternal()[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x7b5a55]
#19: MessageLoop::RunHandler()[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x7b5965]
#20: MessageLoop::Run()[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x7b590d]
#21: nsThread::ThreadFunc(void*)[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/XUL +0x195dc6]
#22: _pt_root[/mozilla/builds/aurora/mozilla/firefox-debug/dist/NightlyDebug.app/Contents/MacOS/libnss3.dylib +0x36c4ae]
#23: _pthread_start[/usr/lib/libSystem.B.dylib +0x39fd6]
So it looks like the current |mNextDriver| gets released when assigning |aNextDriver| [1] to it. It seems like we might need to do something like |mPrevDriver = mNextDriver| in this situation, but I'm not familiar enough with this code to understand the proper flow.

Paul, any thoughts? It looks like this behavior may be related to bug 1085356.

[1] https://hg.mozilla.org/mozilla-central/annotate/e7e69cc8c07b/dom/media/GraphDriver.cpp#l94
Flags: needinfo?(padenot)
Assignee: nobody → padenot
Flags: needinfo?(padenot)
https://hg.mozilla.org/mozilla-central/rev/b3ced16835c7
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
Comment on attachment 8632888 [details] [diff] [review]
Properly handle the case of resuming an AudioContext with an MSG that is already switching to an AudioCallbackDriver. r=

Approval Request Comment
[Feature/regressing bug #]: bug 1094764
[User impact if declined]: crash
[Describe test coverage new/current, TreeHerder]: landed in the mozilla-inbound, added crashtest
[Risks and why]: low risk, it's an easy patch 
[String/UUID change made/needed]: none
Attachment #8632888 - Flags: approval-mozilla-beta?
Attachment #8632888 - Flags: approval-mozilla-aurora?
Comment on attachment 8632888 [details] [diff] [review]
Properly handle the case of resuming an AudioContext with an MSG that is already switching to an AudioCallbackDriver. r=

Given that this has a crash test to verify the fix, let's land it in Aurora. Also Paul insists that this fix will help with the crashes reported in bug 1181735. Let's hope he is right!
Attachment #8632888 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Hi Ritu -- Can we get approval to land this on Beta as well?  (The patch is still beta?)  Is there a reason we're holding off landing it on Beta?  Thanks.
Flags: needinfo?(rkothari)
Flags: needinfo?(rkothari)
Comment on attachment 8632888 [details] [diff] [review]
Properly handle the case of resuming an AudioContext with an MSG that is already switching to an AudioCallbackDriver. r=

Looks like a straightforward fix with a test included. Let's get this in beta6. beta+

(In reply to Maire Reavy [:mreavy] (Plz needinfo me) from comment #8)
> Hi Ritu -- Can we get approval to land this on Beta as well?  (The patch is
> still beta?)  Is there a reason we're holding off landing it on Beta? 
> Thanks.

We will sometimes hold a patch off beta to get extra testing on aurora or wait for the person on point for beta to make the call on the patch when we're later in the beta cycle as we are now.
Attachment #8632888 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: