Closed Bug 1180355 Opened 5 years ago Closed 5 years ago

Crash when creating an AudioContext with the AudioChannelService turned on on desktop

Categories

(Core :: Web Audio, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla42
Tracking Status
firefox42 --- fixed

People

(Reporter: ehsan, Assigned: ehsan)

References

Details

Attachments

(1 file)

With the audio channel service turned on on desktop, I get the following crash:

(lldb) bt
* thread #1: tid = 0x12f3ea, 0x00000001025abca0 XUL`mozilla::MediaStream::SetTrackEnabled(int, bool) [inlined] mozilla::MediaStream::GraphImpl(this=0x5a5a5a5a5a5a5a5a) at MediaStreamGraph.cpp:1979, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x00000001025abca0 XUL`mozilla::MediaStream::SetTrackEnabled(int, bool) [inlined] mozilla::MediaStream::GraphImpl(this=0x5a5a5a5a5a5a5a5a) at MediaStreamGraph.cpp:1979
    frame #1: 0x00000001025abca0 XUL`mozilla::MediaStream::SetTrackEnabled(this=0x5a5a5a5a5a5a5a5a, aTrackID=1, aEnabled=true) + 16 at MediaStreamGraph.cpp:2391
  * frame #2: 0x000000010263e01f XUL`mozilla::dom::AudioDestinationNode::CanPlayChanged(int) [inlined] mozilla::dom::AudioDestinationNode::SetCanPlay(this=0x0000000129379f00) + 63 at AudioDestinationNode.cpp:517
    frame #3: 0x000000010263e00e XUL`mozilla::dom::AudioDestinationNode::CanPlayChanged(this=0x0000000129379f00, aCanPlay=0) + 46 at AudioDestinationNode.cpp:549
    frame #4: 0x000000010263ac3d XUL`mozilla::dom::AudioDestinationNode::CreateAudioChannelAgent() [inlined] mozilla::dom::AudioDestinationNode::InputMuted(this=<unavailable>, aMuted=false) + 653 at AudioDestinationNode.cpp:774
    frame #5: 0x000000010263ac0d XUL`mozilla::dom::AudioDestinationNode::CreateAudioChannelAgent(this=<unavailable>) + 605 at AudioDestinationNode.cpp:682
    frame #6: 0x000000010263a989 XUL`mozilla::dom::AudioContext::AudioContext(this=0x00000001390f1b80, aWindow=<unavailable>, aIsOffline=<unavailable>, aChannel=<unavailable>, aNumberOfChannels=<unavailable>, aLength=<unavailable>, aSampleRate=<unavailable>) + 521 at AudioContext.cpp:111
    frame #7: 0x000000010263b19e XUL`mozilla::dom::AudioContext::Constructor(mozilla::dom::GlobalObject const&, mozilla::ErrorResult&) [inlined] mozilla::dom::AudioContext::AudioContext(this=0x00000001390f1b80, aWindow=0x000000012a0c7020, aIsOffline=false, aChannel=<unavailable>, aNumberOfChannels=0, aLength=0, aSampleRate=0) + 110 at AudioContext.cpp:113
    frame #8: 0x000000010263b191 XUL`mozilla::dom::AudioContext::Constructor(aGlobal=<unavailable>, aRv=<unavailable>) + 97 at AudioContext.cpp:145
    frame #9: 0x0000000101c41f77 XUL`mozilla::dom::AudioContextBinding::_constructor(cx=0x0000000121dc5d20, argc=<unavailable>, vp=0x000000010e9d30b8) + 631 at AudioContextBinding.cpp:1756
    frame #10: 0x0000000103aba297 XUL`js::InvokeConstructor(JSContext*, JS::CallArgs) [inlined] js::CallJSNative(native=0x0000000101c41d00)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) + 52 at jscntxtinlines.h:235
    frame #11: 0x0000000103aba263 XUL`js::InvokeConstructor(JSContext*, JS::CallArgs) at jscntxtinlines.h:268
    frame #12: 0x0000000103aba263 XUL`js::InvokeConstructor(cx=0x0000000121dc5d20, args=<unavailable>) + 99 at Interpreter.cpp:809
    frame #13: 0x0000000103ab4c4b XUL`Interpret(cx=0x0000000121dc5d20, state=<unavailable>) + 43019 at Interpreter.cpp:2956
    frame #14: 0x0000000103aaa40b XUL`js::RunScript(cx=0x0000000121dc5d20, state=0x00007fff5fbfc620) + 363 at Interpreter.cpp:655

I think I have a fix...
Blocks: 486262
Attached patch Patch (v1)Splinter Review
Attachment #8629547 - Flags: review?(amarchesini)
Attachment #8629547 - Flags: review?(amarchesini) → review+
Comment on attachment 8629547 [details] [diff] [review]
Patch (v1)

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

Would be nice to propagate the errors from CreateAudioChannelAgent. But maybe it can be a follow up?
(In reply to Andrea Marchesini (:baku) from comment #3)
> Would be nice to propagate the errors from CreateAudioChannelAgent. But
> maybe it can be a follow up?

Can CreateAudioChannelAgent() fail?
Flags: needinfo?(amarchesini)
https://hg.mozilla.org/mozilla-central/rev/3d4705dc052c
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
> Can CreateAudioChannelAgent() fail?

in theory a lot of methods can return errors. The reason why we are ignoring them is because we are in the CTOR.
Flags: needinfo?(amarchesini)
Filed bug 1180940 as a follow-up.
You need to log in before you can comment on or make changes to this bug.