Comment #7 on issue 19276 by hc...@chromium.org: Browser hangs very frequently during video hardware configuration testing http://code.google.com/p/chromium/issues/detail?id=19276
I isolated the dead lock to PCMWaveOutAudioOutputStream and created a test can easily reproduce such dead lock: 1. Apply attached patch file (dead_lock.patch) 2. Build media_unittests 3. Connect to a remote computer with above steps 1 - 5 4. run: media_unittests --gtest_filter=WinAudioTest.PCMWaveStreamDeadLock in the debugger You'll notice a dead lock pretty easily. Here's the stack trace I captured: << Thread name: testing::internal::FunctionMockerBase<void __cdecl(bool)>::InvokeWith PCMWaveOutAudioOutputStream::Start Normal 0 >> ntdll.dll!7c90e514() [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!7c90df5a() ntdll.dll!7c91b24b() kernel32.dll!7c80262a() kernel32.dll!7c802600() kernel32.dll!7c809f00() ntdll.dll!7c901046() rdpsnd.dll!5dac1d9e() rdpsnd.dll!5dac14a8() winmm.dll!76b455b2() winmm.dll!76b45aa7() msacm32.drv!72d11502() msacm32.drv!72d112de() winmm.dll!76b455b2() winmm.dll!76b45aa7() > media_unittests.exe!PCMWaveOutAudioOutputStream::Start(AudioOutputStream::AudioSource Callback * callback=0x0012fc7c) Line 159 + 0x15 bytes C++ media_unittests.exe!WinAudioTest_PCMWaveStreamDeadLock_Test::TestBody() Line 493 + 0x13 bytes C++ media_unittests.exe!testing::Test::Run() Line 2031 + 0xf bytes C++ media_unittests.exe!testing::internal::TestInfoImpl::Run() Line 2291 C++ media_unittests.exe!testing::internal::TestInfoImpl::RunTest(testing::TestInfo * test_info=0x011d9d08) Line 656 C++ media_unittests.exe!testing::internal::List<testing::TestInfo *>::ForEach<void (__cdecl*)(testing::TestInfo *)>(void (testing::TestInfo *)* functor=0x00709f60) Line 397 + 0x10 bytes C++ media_unittests.exe!testing::TestCase::Run() Line 2384 C++ media_unittests.exe!testing::TestCase::RunTestCase(testing::TestCase * test_case=0x011d81e8) Line 776 + 0xb bytes C++ media_unittests.exe!testing::internal::List<testing::TestCase *>::ForEach<void (__cdecl*)(testing::TestCase *)>(void (testing::TestCase *)* functor=0x0070da20) Line 397 + 0x10 bytes C++ media_unittests.exe!testing::internal::UnitTestImpl::RunAllTests() Line 3674 C++ media_unittests.exe!testing::UnitTest::Run() Line 3394 + 0xb bytes C++ media_unittests.exe!TestSuite::Run() Line 69 + 0xc bytes C++ media_unittests.exe!main(int argc=2, char * * argv=0x011c3f30) Line 8 + 0x17 bytes C++ media_unittests.exe!__tmainCRTStartup() Line 327 + 0x19 bytes C media_unittests.exe!mainCRTStartup() Line 196 C kernel32.dll!7c817077() media_unittests.exe!std::_Vector_const_iterator<int,std::allocator<int> > ::operator+=(int _Off=6488175) Line 150 + 0x1b bytes C++ media_unittests.exe!GTestStreamToHelper<char const [28]>(std::basic_ostream<char,std::char_traits<char> > * os=0x00730065, const char [28]& val=0x006f0073) Line 97 + 0xd bytes C++ media_unittests.exe!testing::internal::FunctionMockerBase<void __cdecl(bool)>::InvokeWith(const std::tr1::tuple<bool,void,void,void,void,void,void,void,void,void> & args={...}) Line 1549 + 0xaa bytes C++ 9a16e8ec() << Thread name: 4956 PCMWaveOutAudioOutputStream::WaveCallback PCMWaveOutAudioOutputStream::WaveCallback Normal 0 >> ntdll.dll!7c90e514() [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] ntdll.dll!7c90df5a() ntdll.dll!7c91b24b() ntdll.dll!7c929fef() kernel32.dll!7c802600() kernel32.dll!7c802542() winmm.dll!76b5b43b() ntdll.dll!7c901046() winmm.dll!76b45576() winmm.dll!76b45aa7() > > media_unittests.exe!PCMWaveOutAudioOutputStream::WaveCallback(HWAVEOUT__ > * hwo=0x001662b8, unsigned int msg=957, unsigned long instance=18728336, unsigned long param1=18737376, unsigned long __formal=0) Line 285 + 0x12 bytes C++ winmm.dll!76b454e3() msacm32.drv!72d114e4() msacm32.drv!72d11670() winmm.dll!76b454e3() rdpsnd.dll!5dac1c4b() rdpsnd.dll!5dac22ab() rdpsnd.dll!5dac255a() kernel32.dll!7c80b729() Attachments: dead_lock.patch 1.7 KB -- You received this message because you are listed in the owner or CC fields of this issue, or because you starred this issue. You may adjust your issue notification preferences at: http://code.google.com/hosting/settings --~--~---------~--~----~------------~-------~--~----~ Automated mail from issue updates at http://crbug.com/ Subscription options: http://groups.google.com/group/chromium-bugs -~----------~----~----~----~------~----~------~--~---