media::AUAudioInputStream::AddDevicePropertyChangesToUMA on Mac OS X |
||||||||||||||||||||
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
,
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?
,
Mar 18 2016
Can't find any in M50 for Mac.
,
Mar 18 2016
Not in M51 either.
,
Mar 18 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6d1646cef28a7d0bf51a1ddf1b6cf20161719799 commit 6d1646cef28a7d0bf51a1ddf1b6cf20161719799 Author: henrika <henrika@chromium.org> Date: Fri Mar 18 10:59:57 2016 Resolves crash in device notifier for audio input on Mac OS X BUG= 596000 Review URL: https://codereview.chromium.org/1816483002 Cr-Commit-Position: refs/heads/master@{#381931} [modify] https://crrev.com/6d1646cef28a7d0bf51a1ddf1b6cf20161719799/media/audio/mac/audio_low_latency_input_mac.cc [modify] https://crrev.com/6d1646cef28a7d0bf51a1ddf1b6cf20161719799/media/audio/mac/audio_low_latency_input_mac.h
,
Mar 18 2016
Reassigning to Tommi for further action if needed. I will be away for two weeks and can't merge.
,
Mar 24 2016
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*)
,
Mar 25 2016
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
,
Apr 7 2016
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.
,
Apr 13 2016
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.
,
Apr 13 2016
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
,
Jun 1 2016
Moving this nonessential bug to the next milestone. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Jun 2 2016
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
,
Jun 6 2016
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
,
Jul 15 2016
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
,
Mar 16 2017
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
,
Apr 18 2017
,
May 26 2017
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
,
May 29 2017
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".
,
May 29 2017
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?
,
May 29 2017
,
May 30 2017
Only added for stats. But please double check if/when it is removed.
,
Oct 19 2017
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
,
Jan 29 2018
Take a look at recent surge in frequency.
,
Jan 29 2018
,
Feb 1 2018
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
,
Feb 6 2018
So this now looks the same as issue 806719. Duping (even if it is the wrong way around). |
||||||||||||||||||||
►
Sign in to add a comment |
||||||||||||||||||||
Comment 1 by henrika@chromium.org
, Mar 18 2016