New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 596000 link

Starred by 2 users

Issue metadata

Status: Duplicate
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

media::AUAudioInputStream::AddDevicePropertyChangesToUMA on Mac OS X

Project Member Reported by henrika@chromium.org, Mar 18 2016

Issue description

Using 51.0.2682.0 (Developer Build) (64-bit) and e.g. the Tone extension (g.co/tone) can lead to this crash after resuming from hibernation.

* thread #1: tid = 0x104beb, 0x00000001230bbab9 libmedia.dylib`std::__1::__tree_node_base<void*>* std::__1::__tree_next<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 121, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xffffffff89ab0000)
    frame #0: 0x00000001230bbab9 libmedia.dylib`std::__1::__tree_node_base<void*>* std::__1::__tree_next<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 121
libmedia.dylib`std::__1::__tree_node_base<void*>* std::__1::__tree_next<std::__1::__tree_node_base<void*>*>:
->  0x1230bbab9 <+121>: cmpq   (%rcx), %rax
    0x1230bbabc <+124>: sete   %dl
    0x1230bbabf <+127>: xorb   $-0x1, %dl
    0x1230bbac2 <+130>: testb  $0x1, %dl
(lldb) bt
* thread #1: tid = 0x104beb, 0x00000001230bbab9 libmedia.dylib`std::__1::__tree_node_base<void*>* std::__1::__tree_next<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 121, name = 'CrBrowserMain', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0xffffffff89ab0000)
  * frame #0: 0x00000001230bbab9 libmedia.dylib`std::__1::__tree_node_base<void*>* std::__1::__tree_next<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 121
    frame #1: 0x0000000123163353 libmedia.dylib`media::AUAudioInputStream::AddDevicePropertyChangesToUMA(bool) + 6099
    frame #2: 0x0000000123161353 libmedia.dylib`media::AUAudioInputStream::Close() + 531
    frame #3: 0x00000001230ff055 libmedia.dylib`media::AudioInputController::DoStopCloseAndClearStream() + 309
    frame #4: 0x00000001230fe2ad libmedia.dylib`media::AudioInputController::DoClose() + 1629
    frame #5: 0x0000000123105317 libmedia.dylib`void base::internal::RunnableAdapter<void (media::AudioInputController::*)()>::Run<>(media::AudioInputController*) + 119
    frame #6: 0x000000012310527d libmedia.dylib`void base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (media::AudioInputController::*)()> >::MakeItSo<media::AudioInputController*>(base::internal::RunnableAdapter<void (media::AudioInputController::*)()>, media::AudioInputController*&&) + 61
    frame #7: 0x0000000123105218 libmedia.dylib`base::internal::Invoker<base::IndexSequence<0ul>, base::internal::BindState<base::internal::RunnableAdapter<void (media::AudioInputController::*)()>, void (media::AudioInputController*), media::AudioInputController*>, base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (media::AudioInputController::*)()> >, void ()>::Run(base::internal::BindStateBase*) + 104
    frame #8: 0x00000001183778ef libbase.dylib`base::Callback<void (), (base::internal::CopyMode)1>::Run() const + 63
    frame #9: 0x00000001185bb1cd libbase.dylib`base::(anonymous namespace)::PostTaskAndReplyRelay::Run() + 61
    frame #10: 0x00000001185bbdd7 libbase.dylib`void base::internal::RunnableAdapter<void (base::(anonymous namespace)::PostTaskAndReplyRelay::*)()>::Run<>(base::(anonymous namespace)::PostTaskAndReplyRelay*) + 119
    frame #11: 0x00000001185bbced libbase.dylib`void base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (base::(anonymous namespace)::PostTaskAndReplyRelay::*)()> >::MakeItSo<base::(anonymous namespace)::PostTaskAndReplyRelay*>(base::internal::RunnableAdapter<void (base::(anonymous namespace)::PostTaskAndReplyRelay::*)()>, base::(anonymous namespace)::PostTaskAndReplyRelay*&&) + 61
    frame #12: 0x00000001185bbc83 libbase.dylib`base::internal::Invoker<base::IndexSequence<0ul>, base::internal::BindState<base::internal::RunnableAdapter<void (base::(anonymous namespace)::PostTaskAndReplyRelay::*)()>, void (base::(anonymous namespace)::PostTaskAndReplyRelay*), base::internal::UnretainedWrapper<base::(anonymous namespace)::PostTaskAndReplyRelay> >, base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (base::(anonymous namespace)::PostTaskAndReplyRelay::*)()> >, void ()>::Run(base::internal::BindStateBase*) + 115
    frame #13: 0x00000001183778ef libbase.dylib`base::Callback<void (), (base::internal::CopyMode)1>::Run() const + 63
    frame #14: 0x00000001183a32ce libbase.dylib`base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask const&) + 654
    frame #15: 0x0000000118479f20 libbase.dylib`base::MessageLoop::RunTask(base::PendingTask const&) + 848
    frame #16: 0x000000011847a556 libbase.dylib`base::MessageLoop::DeferOrRunPendingTask(base::PendingTask const&) + 86
    frame #17: 0x000000011847ac08 libbase.dylib`base::MessageLoop::DoWork() + 552
    frame #18: 0x000000011834ca98 libbase.dylib`base::MessagePumpCFRunLoopBase::RunWork() + 104
    frame #19: 0x000000011834ca0a libbase.dylib`___ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv_block_invoke + 42
    frame #20: 0x000000011843172a libbase.dylib`base::mac::CallWithEHFrame(void () block_pointer) + 10
    frame #21: 0x000000011834bda5 libbase.dylib`base::MessagePumpCFRunLoopBase::RunWorkSource(void*) + 101
    frame #22: 0x00007fff820b75c1 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #23: 0x00007fff820a941c CoreFoundation`__CFRunLoopDoSources0 + 556
    frame #24: 0x00007fff820a893f CoreFoundation`__CFRunLoopRun + 927
    frame #25: 0x00007fff820a8338 CoreFoundation`CFRunLoopRunSpecific + 296
    frame #26: 0x00007fff8e8e7935 HIToolbox`RunCurrentEventLoopInMode + 235
    frame #27: 0x00007fff8e8e776f HIToolbox`ReceiveNextEventCommon + 432
    frame #28: 0x00007fff8e8e75af HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71
    frame #29: 0x00007fff830a70ee AppKit`_DPSNextEvent + 1067
    frame #30: 0x00007fff83473943 AppKit`-[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
    frame #31: 0x00007fff8309cfc8 AppKit`-[NSApplication run] + 682
    frame #32: 0x000000011834ddb8 libbase.dylib`base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) + 312
    frame #33: 0x000000011834c6ad libbase.dylib`base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 125
    frame #34: 0x000000011847976a libbase.dylib`base::MessageLoop::RunHandler() + 298
    frame #35: 0x0000000118513e05 libbase.dylib`base::RunLoop::Run() + 85
    frame #36: 0x000000010c7958e0 libchrome_main_dll.dylib`ChromeBrowserMainParts::MainMessageLoopRun(int*) + 400
    frame #37: 0x000000011b7bd0ca libcontent.dylib`content::BrowserMainLoop::RunMainMessageLoopParts() + 410
    frame #38: 0x000000011b7c68c1 libcontent.dylib`content::BrowserMainRunnerImpl::Run() + 481
    frame #39: 0x000000011b7b161b libcontent.dylib`content::BrowserMain(content::MainFunctionParams const&) + 635
    frame #40: 0x000000011b496ea7 libcontent.dylib`content::RunNamedProcessTypeMain(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&, content::ContentMainDelegate*) + 599
    frame #41: 0x000000011b498e72 libcontent.dylib`content::ContentMainRunnerImpl::Run() + 626
    frame #42: 0x000000011b4964fd libcontent.dylib`content::ContentMain(content::ContentMainParams const&) + 349
    frame #43: 0x000000010c44c1d3 libchrome_main_dll.dylib`ChromeMain + 83
    frame #44: 0x000000010c1dbfef Chromium`main + 783
    frame #45: 0x000000010c1dbcd4 Chromium`start + 52
 
The device notifier was added in https://codereview.chromium.org/1695303002/ and landed as Cr-Commit-Position: refs/heads/master@{#377264}.

Chrome for MaC Dev is 381134 (51.0.2679.0)
Mac Beta is at 378081 (50.0.2661.37).

Tommi: does that mean that we should ask for a merge to M50?

Comment 2 by tommi@chromium.org, Mar 18 2016

Yes. Let's let the fix bake in a Canary first.  Can you check crash/ to see if we've been hitting this in 50?
Can't find any in M50 for Mac.
Not in M51 either.
Cc: -tommi@chromium.org henrika@chromium.org
Labels: -Pri-1 Pri-2
Owner: tommi@chromium.org
Reassigning to Tommi for further action if needed. I will be away for two weeks and can't merge.
Report ID 6264316400000000 and 0b05991800000000

Thread 23 CRASHED [EXC_BAD_ACCESS / 0x0000000d @ 0x0000000107a53c41 ] MAGIC SIGNATURE THREAD
0x0000000107a53c41	(Google Chrome Framework -audio_low_latency_input_mac.cc:947 )	media::AUAudioInputStream::DevicePropertyChanged(unsigned int, unsigned int, AudioObjectPropertyAddress const*)
0x0000000107a53b85	(Google Chrome Framework -audio_low_latency_input_mac.cc:927 )	media::AUAudioInputStream::OnDevicePropertyChanged(unsigned int, unsigned int, AudioObjectPropertyAddress const*, void*)
0x00007fff8b02623c	(CoreAudio + 0x0001e23c )	HALPropertyListener::Call(unsigned int, unsigned int, AudioObjectPropertyAddress const*)
0x00007fff8b019560	(CoreAudio + 0x00011560 )	HALObject::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*)
0x00007fff8b027cd2	(CoreAudio + 0x0001fcd2 )	HALSystem::AudioObjectPropertiesChanged(AudioHardwarePlugInInterface**, unsigned int, unsigned int, AudioObjectPropertyAddress const*)
0x00007fff8b027bf1	(CoreAudio + 0x0001fbf1 )	_SendPropertiesChanged(void*)
Project Member

Comment 8 by sheriffbot@chromium.org, Mar 25 2016

Labels: M-51 Fracas
Users experienced this crash on the following builds:

Mac Dev 51.0.2687.0 - 1 reports, 1 clients (signature media::AUAudioInputStream::DevicePropertyChanged)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Cc: -henrika@chromium.org tommi@chromium.org
Labels: OS-All
Owner: henrika@chromium.org
The real issue is most likely that the audio manager goes away before all streams are deleted.
Today, DCHECKs are used to avoid this (see https://code.google.com/p/chromium/codesearch#chromium/src/media/audio/audio_manager_base.cc&q=audio_manager_bas&sq=package:chromium&l=107).
Hence, we should probably convert these DCHECKs to CHECKs and catch the real reason for why we hit it.
Most likely some clients never call ReleaseInput/OutputStream as they should.
Tommi, you mentioned a large upcoming change in the audio manager. Care to add a link here so I can track it and see what it brings. Might affect this issue.
Project Member

Comment 11 by sheriffbot@chromium.org, Apr 13 2016

Labels: M-52
Users experienced this crash on the following builds:

Mac Canary 52.0.2705.0 -  0.05 CPM, 1 reports, 1 clients (signature media::AUAudioInputStream::DevicePropertyChanged)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Project Member

Comment 12 by sheriffbot@chromium.org, Jun 1 2016

Labels: -M-51 -M-52 M-53 MovedFrom-52
Moving this nonessential bug to the next milestone.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 13 by sheriffbot@chromium.org, Jun 2 2016

Labels: FoundIn-51
Users experienced this crash on the following builds:

Mac Beta 51.0.2704.63 -  0.05 CPM, 3 reports, 3 clients (signature media::AUAudioInputStream::DevicePropertyChanged)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Project Member

Comment 14 by sheriffbot@chromium.org, Jun 6 2016

Labels: FoundIn-M-51
Users experienced this crash on the following builds:

Mac Stable 51.0.2704.79 -  0.06 CPM, 14 reports, 9 clients (signature media::AUAudioInputStream::DevicePropertyChanged)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Project Member

Comment 15 by sheriffbot@chromium.org, Jul 15 2016

Labels: -M-53 MovedFrom-53
This issue has been moved once and is lower than Pri-1. Removing the milestone.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 16 by sheriffbot@chromium.org, Mar 16 2017

Labels: FoundIn-M-59
Users experienced this crash on the following builds:

Mac Canary 59.0.3043.0 -  0.54 CPM, 1 reports, 1 clients (signature media::AUAudioInputStream::DevicePropertyChanged)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Components: Blink>WebRTC>Audio
Labels: -Pri-2 Pri-3
Project Member

Comment 18 by sheriffbot@chromium.org, May 26 2017

Labels: FoundIn-M-60
Users experienced this crash on the following builds:

Mac Dev 60.0.3107.4 -  0.22 CPM, 1 reports, 1 clients (signature media::AUAudioInputStream::DevicePropertyChanged)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Cc: -tommi@chromium.org henrika@chromium.org
Owner: grunell@chromium.org
Very old issue which I have not tracked in a while. Hope it is OK if you own it given that you are now working in this area. It might even be a good idea to remove usage of AddDevicePropertyChanges since afaik we can't see any correlation with the "no input audio issue".
Cc: maxmorin@chromium.org olka@chromium.org solenberg@chromium.org
Components: Internals>Media>Audio
Labels: -OS-All
OK, yeah if it doesn't fill any purpose we should remove it.

Do you know if it's currently useful for something? Was it only added for stats?
Cc: ossu@chromium.org
Only added for stats. But please double check if/when it is removed.
Project Member

Comment 23 by sheriffbot@chromium.org, Oct 19 2017

Labels: FoundIn-M-64
Users experienced this crash on the following builds:

Mac Canary 64.0.3243.0 -  0.53 CPM, 1 reports, 1 clients (signature media::AUAudioInputStream::DevicePropertyChanged)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas
Labels: -Pri-3 Pri-2
Take a look at recent surge in frequency.
Owner: ossu@chromium.org
Project Member

Comment 26 by sheriffbot@chromium.org, Feb 1 2018

Labels: FoundIn-M-65
Users experienced this crash on the following builds:

Mac Dev 65.0.3325.31 -  0.34 CPM, 1 reports, 1 clients (signature media::AUAudioInputStream::DevicePropertyChanged)

If this update was incorrect, please add "Fracas-Wrong" label to prevent future updates.

- Go/Fracas

Comment 27 by ossu@chromium.org, Feb 6 2018

Mergedinto: 806719
Status: Duplicate (was: Assigned)
So this now looks the same as issue 806719. Duping (even if it is the wrong way around).

Sign in to add a comment