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

Issue 802404 link

Starred by 2 users

Issue metadata

Status: Duplicate
Merged: issue 764502
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug



Sign in to add a comment

CoreAudio hangs on browser main thread.

Project Member Reported by erikc...@chromium.org, Jan 16 2018

Issue description

Sample attached.

I just finished taking a hangouts call, and switched tabs. Everything froze. 

main thread:
"""
    +                                                                         1847 media::AudioManagerMac::MaybeChangeBufferSize(unsigned int, ComponentInstanceRecord*, unsigned int, unsigned long, bool*, unsigned long*)  (in Google Chrome Framework)  load address 0x10e569000 + 0x1afdc1  [audio_manager_mac.cc:1119]
    +                                                                           1847 AUMethodSetProperty(void*, unsigned int, unsigned int, unsigned int, void const*, unsigned int)  (in CoreAudio) + 110  [0x12b688e95]
    +                                                                             1847 AUBase::DispatchSetProperty(unsigned int, unsigned int, unsigned int, void const*, unsigned int)  (in CoreAudio) + 1830  [0x12b682244]
    +                                                                               1847 AUHAL::SetProperty(unsigned int, unsigned int, unsigned int, void const*, unsigned int)  (in CoreAudio) + 298  [0x12b57b29e]
    +                                                                                 1847 AUConverterBase::SetMaxFramesPerSlice(unsigned int)  (in CoreAudio) + 338  [0x12b575e78]
    +                                                                                   1847 AUHAL::PropertyChanged(unsigned int, unsigned int, unsigned int)  (in CoreAudio) + 375  [0x12b579f41]
    +                                                                                     1847 CAMutex::Lock()  (in CoreAudio) + 50  [0x12b693784]
    +                                                                                       1847 _pthread_mutex_lock_wait  (in libsystem_pthread.dylib) + 100  [0x7fffa23b5dfa]
    +                                                                                         1847 __psynch_mutexwait  (in libsystem_kernel.dylib) + 10  
"""

another thread:
"""
    1847 Thread_5351332   DispatchQueue_2037: com.apple.audio.CADispatchQueue.SerialQueue  (serial)
    + 1847 start_wqthread  (in libsystem_pthread.dylib) + 13  [0x7fffa23b507d]
    +   1847 _pthread_wqthread  (in libsystem_pthread.dylib) + 1299  [0x7fffa23b55a2]
    +     1847 _dispatch_worker_thread3  (in libdispatch.dylib) + 99  [0x7fffa216848c]
    +       1847 _dispatch_root_queue_drain  (in libdispatch.dylib) + 476  [0x7fffa21686b5]
    +         1847 _dispatch_queue_invoke  (in libdispatch.dylib) + 1046  [0x7fffa216f306]
    +           1847 _dispatch_queue_serial_drain  (in libdispatch.dylib) + 896  [0x7fffa217c9a0]
    +             1847 _dispatch_client_callout  (in libdispatch.dylib) + 8  [0x7fffa21668fc]
    +               1847 _SendPropertiesChanged(void*)  (in CoreAudio) + 43  [0x7fff8c56eb3d]
    +                 1847 HALSystem::AudioObjectPropertiesChanged(AudioHardwarePlugInInterface**, unsigned int, unsigned int, AudioObjectPropertyAddress const*)  (in CoreAudio) + 166  [0x7fff8c56ec1e]
    +                   1847 HALDevice::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*)  (in CoreAudio) + 460  [0x7fff8c55f6ec]
    +                     1847 HALObject::PropertiesChanged(unsigned int, AudioObjectPropertyAddress const*)  (in CoreAudio) + 838  [0x7fff8c55aa7c]
    +                       1847 HALPropertyListener::Call(unsigned int, unsigned int, AudioObjectPropertyAddress const*)  (in CoreAudio) + 338  [0x7fff8c56c5c6]
    +                         1847 AUHAL::DeviceListener(unsigned int, unsigned int, AudioObjectPropertyAddress const*, void*)  (in CoreAudio) + 482  [0x12b5776a0]
    +                           1847 AUConverterBase::SetupAllConverters(bool, unsigned int)  (in CoreAudio) + 123  [0x12b574c01]
    +                             1847 AUHAL::SetupConverter(unsigned int, bool)  (in CoreAudio) + 53  [0x12b57a02d]
    +                               1847 AUHAL::SetStreamUsage(unsigned int)  (in CoreAudio) + 587  [0x12b57a701]
    +                                 1847 AudioDeviceSetProperty  (in CoreAudio) + 268  [0x7fff8c5843b3]
    +                                   1847 HALDevice::SetPropertyData(AudioObjectPropertyAddress const&, unsigned int, void const*, unsigned int, void const*, AudioTimeStamp const*)  (in CoreAudio) + 570  [0x7fff8c570cc0]
    +                                     1847 HALObject::SetPropertyData(AudioObjectPropertyAddress const&, unsigned int, void const*, unsigned int, void const*, AudioTimeStamp const*)  (in CoreAudio) + 202  [0x7fff8c56d9c6]
    +                                       1847 HALPlugIn::ObjectSetPropertyData(HALObject const&, AudioObjectPropertyAddress const&, unsigned int, void const*, unsigned int, void const*, AudioTimeStamp const*)  (in CoreAudio) + 71  [0x7fff8c56a75b]
    +                                         1847 HAL_HardwarePlugIn_ObjectSetPropertyData(AudioHardwarePlugInInterface**, unsigned int, AudioObjectPropertyAddress const*, unsigned int, void const*, unsigned int, void const*)  (in CoreAudio) + 214  [0x7fff8c56a9ea]
    +                                           1847 HALC_ShellObject::SetPropertyData(unsigned int, AudioObjectPropertyAddress const&, unsigned int, void const*, unsigned int, void const*)  (in CoreAudio) + 931  [0x7fff8c56b065]
    +                                             1847 HALC_ProxyIOContext::SetPropertyData(AudioObjectPropertyAddress const&, unsigned int, void const*, unsigned int, void const*)  (in CoreAudio) + 93  [0x7fff8c5716c1]
    +                                               1847 HALB_Mutex::Lock()  (in CoreAudio) + 72  [0x7fff8c544f60]
    +                                                 1847 _pthread_mutex_lock_wait  (in libsystem_pthread.dylib) + 100  [0x7fffa23b5dfa]
"""

another thread:
"""
    1847 Thread_5353075: com.apple.audio.IOThread.client
    + 1847 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fffa23b508d]
    +   1847 _pthread_start  (in libsystem_pthread.dylib) + 286  [0x7fffa23b5887]
    +     1847 _pthread_body  (in libsystem_pthread.dylib) + 180  [0x7fffa23b593b]
    +       1847 HALB_IOThread::Entry(void*)  (in CoreAudio) + 75  [0x7fff8c57cfa3]
    +         1847 HALC_ProxyIOContext::IOThreadEntry(void*)  (in CoreAudio) + 128  [0x7fff8c57d264]
    +           1847 HALC_ProxyIOContext::IOWorkLoop()  (in CoreAudio) + 5290  [0x7fff8c57e8ce]
    +             1847 AUHAL::AUIOProc(unsigned int, AudioTimeStamp const*, AudioBufferList const*, AudioTimeStamp const*, AudioBufferList*, AudioTimeStamp const*, void*)  (in CoreAudio) + 1814  [0x12b5792de]
    +               1847 AUBase::DoRender(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList&)  (in CoreAudio) + 777  [0x12b682e95]
    +                 1847 AUHAL::PropertyChanged(unsigned int, unsigned int, unsigned int)  (in CoreAudio) + 405  [0x12b579f5f]
    +                   1847 CAMutex::Lock()  (in CoreAudio) + 50  [0x12b693784]
    +                     1847 _pthread_mutex_lock_wait  (in libsystem_pthread.dylib) + 100  [0x7fffa23b5dfa]
    +                       1847 __psynch_mutexwait  (in libsystem_kernel.dylib) + 10  [0x7fffa22cac22]
"""
 
browser_audio_hang.txt
224 KB View Download
Cc: guidou@chromium.org ossu@chromium.org olka@chromium.org

Comment 2 by ossu@chromium.org, Jan 17 2018

Cc: -ossu@chromium.org
Owner: ossu@chromium.org
Status: Assigned (was: Untriaged)
This looks like the same as  issue 764502 . That ought to have been fixed in macOS 10.13.2. What OS and Chrome versions are you running?
It's in the sample - 10.12.6 and 65.0.3322.3

Comment 4 by ossu@chromium.org, Jan 17 2018

Mergedinto: 764502
Status: Duplicate (was: Assigned)
Ah, right you are! :)
Unfortunately, this bug lies squarely in CoreAudio territory - the threads that deadlock are both created outside of our control.

I'm closing this as a dupe. Unfortunately, the only way around it is to upgrade to 10.13.2 or later.

Sign in to add a comment