Status: Unconfirmed Owner: [email protected] Labels: Type-Bug Pri-2 OS-All Area-Misc
New issue 5460 by [email protected]: Deadlock getting out of a file save dialog. http://code.google.com/p/chromium/issues/detail?id=5460 Chrome Version : 0.4.154.33 URLs (if applicable) : Other browsers tested: Add OK or FAIL after other browsers where you have tested this issue: Safari 3: Firefox 3: OK IE 7: What steps will reproduce the problem? 1. Install the Windows FolderSize shell extension. 2. Kill the FolderSizeSrvc process (it sometimes takes too much CPU, so I sometimes kill it... just for fun) 3. Then, unfortunately, it doesn't always happen, but it sometimes does by simply opening any File dialog from Chrome (e.g., save page|link as...). But I do have both a full and a mini dump available. I attached the minidump but I can provide the full one on demand (it over 150 megs). Here is some information I extracted from a quick investigation (which led me to believe that the fault is on the FolderSize shell extension, but there might be ways for us to work around it... maybe...) Main thread is blocked waiting for the ShellDialogThread to stop. thread_handle = 0x13c4 0:000> !handle 0x13c4 f Handle 13c4 Type Thread Attributes 0 GrantedAccess 0x1f03ff: Delete,ReadControl,WriteDac,WriteOwner,Synch Terminate,Suspend,Alert,GetContext,SetContext,SetInfo,QueryInfo,SetToken,Impersonate,DirectImpersonate HandleCount 5 PointerCount 9 Name <none> Object Specific Information Thread Id 3398.3284 Priority 10 Base Priority 0 Start Address 16dfa66 chrome_1130000!_threadstartex Main thread call stack: 000:1b60 # ChildEBP RetAddr Args to Child 00 0012eec4 7c90df3c 7c8025db 000013c4 00000000 ntdll!KiFastSystemCallRet 01 0012eec8 7c8025db 000013c4 00000000 00000000 ntdll!NtWaitForSingleObject+0xc 02 0012ef2c 7c802542 000013c4 ffffffff 00000000 kernel32!WaitForSingleObjectEx+0xa8 03 0012ef40 0113d934 000013c4 ffffffff 05163500 kernel32!WaitForSingleObject+0x12 04 0012eff4 015c7ee5 000013c4 05163500 0012f4c0 chrome_1130000!PlatformThread::Join+0x67 [c:\b\slave\chrome-official\build\src\base\platform_thread_win.cc @ 86] 05 0012f09c 015c7cc9 068e87f8 0152a1bf 068e87f8 chrome_1130000!base::Thread::Stop+0x7e [c:\b\slave\chrome-official\build\src\base\thread.cc @ 112] 06 0012f0a4 0152a1bf 068e87f8 0152a4c7 00000001 chrome_1130000!base::Thread::~Thread+0xe [c:\b\slave\chrome-official\build\src\base\thread.cc @ 45] 07 0012f0ac 0152a4c7 00000001 05163500 0152a7a5 chrome_1130000!ShellDialogThread::`scalar deleting destructor'+0x8 08 0012f160 0152a7c9 001c0768 068e87f8 0012f22c chrome_1130000!BaseShellDialogImpl::EndRun+0x154 [c:\b\slave\chrome-official\build\src\chrome\browser\views\shell_dialogs.cc @ 161] 09 0012f170 0152b8a9 05163510 025cfde8 001c0768 chrome_1130000!SelectFileDialogImpl::FileSelected+0x24 [c:\b\slave\chrome-official\build\src\chrome\browser\views\shell_dialogs.cc @ 312] 0a 0012f188 0113bd4d 0012f268 0012f4c0 0113be65 chrome_1130000!RunnableMethod<SelectFileDialogImpl,void (__thiscall SelectFileDialogImpl::*)(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > const &,void *,BaseShellDialogImpl::RunState),Tuple3<std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >,void *,BaseShellDialogImpl::RunState> >::Run+0x1f [c:\b\slave\chrome-official\build\src\base\task.h @ 312] 0b 0012f22c 0113bd89 05163500 00b0ffc8 0113bf7e chrome_1130000!MessageLoop::RunTask+0x7c [c:\b\slave\chrome-official\build\src\base\message_loop.cc @ 304] 0c 0012f238 0113bf7e 003b7dc0 003b7d98 00000001 chrome_1130000!MessageLoop::DeferOrRunPendingTask+0x28 [c:\b\slave\chrome-official\build\src\base\message_loop.cc @ 314] 0d 0012f268 011488fc 00000000 003b7d98 00000000 chrome_1130000!MessageLoop::DoWork+0x6e [c:\b\slave\chrome-official\build\src\base\message_loop.cc @ 403] 0e 0012f280 0114849d 0012f4c0 0012f4c0 00b15e88 chrome_1130000!base::MessagePumpForUI::DoRunLoop+0x18 [c:\b\slave\chrome-official\build\src\base\message_pump_win.cc @ 331] 0f 0012f29c 0113ba82 00b15e88 0012f4c0 0012f648 chrome_1130000!base::MessagePumpWin::RunWithDispatcher+0x38 [c:\b\slave\chrome-official\build\src\base\message_pump_win.cc @ 97] 10 0012f340 0113b9fc 611d9c10 00000000 0012f648 chrome_1130000!MessageLoop::RunInternal+0x80 [c:\b\slave\chrome-official\build\src\base\message_loop.cc @ 188] 11 0012f378 0113c23a 00000001 00000000 00b15e88 chrome_1130000!MessageLoop::RunHandler+0x4f [c:\b\slave\chrome-official\build\src\base\message_loop.cc @ 176] 12 0012f394 0132e98c 00b15e88 00000001 0012f6cc chrome_1130000!MessageLoopForUI::Run+0x21 [c:\b\slave\chrome-official\build\src\base\message_loop.cc @ 554] 13 0012f66c 01133464 0012f698 00000001 003e6d68 chrome_1130000!BrowserMain+0xd4e [c:\b\slave\chrome-official\build\src\chrome\browser\browser_main.cc @ 562] 14 0012f7e0 00402ac2 00400000 0012fc94 00020ab8 chrome_1130000!ChromeMain+0x568 [c:\b\slave\chrome-official\build\src\chrome\app\chrome_dll_main.cc @ 224] 15 0012fc64 00402532 00400000 0012fc94 00020ab8 chrome!google_update::GoogleUpdateClient::Launch+0x19c [c:\b\slave\chrome-official\build\src\chrome\app\google_update_client.cc @ 94] 16 0012ff28 00435728 00400000 00000000 00020ab8 chrome!wWinMain+0x15f [c:\b\slave\chrome-official\build\src\chrome\app\chrome_exe_main.cc @ 66] 17 0012ffc0 7c817067 015dcd54 7c90d950 7ffdf000 chrome!__tmainCRTStartup+0x176 [f:\sp\vctools\crt_bld\self_x86\crt\src\crt0.c @ 324] 18 0012fff0 00000000 00435791 00000000 78746341 kernel32!BaseProcessStart+0x23 thread 030:3284 # ChildEBP RetAddr Args to Child 00 0577fb48 7c90df2c 7c809574 00000002 0577fb74 ntdll!KiFastSystemCallRet 01 0577fb4c 7c809574 00000002 0577fb74 00000001 ntdll!NtWaitForMultipleObjects+0xc 02 0577fbe8 7e4195f9 00000002 0577fc10 00000000 kernel32!WaitForMultipleObjectsEx+0x12c 03 0577fc44 7e4196a8 00000001 01e24ce8 ffffffff USER32!RealMsgWaitForMultipleObjectsEx+0x13e 04 0577fc60 045bc120 00000001 01e24ce8 00000000 USER32!MsgWaitForMultipleObjects+0x1f WARNING: Stack unwind information not available. Following frames may be wrong. 05 0577fca0 045bd4ad 77606068 0015fd80 00000001 FolderSizeColumn+0xc120 06 00000000 00000000 00000000 00000000 00000000 FolderSizeColumn!DllCanUnloadNow+0x2d A few other threads also waiting on thread 030:3284, as identified in their critical section data. Since this is the loader lock, I wonder if there is anything we can do against that... or not... ??? Thread 007:3ef4 # ChildEBP RetAddr Args to Child 00 01b5e508 7c90df3c 7c91b22b 00000028 00000000 ntdll!KiFastSystemCallRet 01 01b5e50c 7c91b22b 00000028 00000000 00000000 ntdll!NtWaitForSingleObject+0xc 02 01b5e594 7c901046 0197b178 7c912cae 7c97b178 ntdll!RtlpWaitForCriticalSection+0x132 03 01b5e59c 7c912cae 7c97b178 c0150008 00000001 ntdll!RtlEnterCriticalSection+0x46 04 01b5e5d8 7c916471 00000001 00000000 01b5e638 ntdll!LdrLockLoaderLock+0xea 05 01b5e874 7c801bbd 07612318 01b5e8c0 01b5e8a0 ntdll!LdrLoadDll+0xd6 06 01b5e8dc 7c801d72 7ffd7c00 00000000 00000000 kernel32!LoadLibraryExW+0x18e 07 01b5e8f0 7c801da8 4d4f1cc8 00000000 00000000 kernel32!LoadLibraryExA+0x1f 08 01b5e90c 4d5018be 4d4f1cc8 00000000 01b5edc4 kernel32!LoadLibraryA+0x94 09 01b5e98c 4d5019cf 01b5e9ac 80000002 ffffffff WINHTTP!InitClientUserString+0x22 0a 01b5ebb0 4d501a8c 00000003 01b5ec48 00001228 WINHTTP!GetClientUserHandle+0x35 0b 01b5ebf4 4d501b56 00000000 01b5ec84 01b5eca0 WINHTTP!FindWinInetBaseProxyKey+0x4a 0c 01b5ec34 4d4f8805 4d4f1d60 01b5ecb0 01b5ee20 WINHTTP!ReadWinInetProxySettings+0x57 0d 01b5ec84 0147203b 01b5eca0 00b15cb8 01b5ee20 WINHTTP!WinHttpGetIEProxyConfigForCurrentUser+0x67 0e 01b5ed74 014712dc 01b5ee20 9df0b110 01b5eeb8 chrome_1130000!net::ProxyResolverWinHttp::GetProxyConfig+0x29 [c:\b\slave\chrome-official\build\src\net\proxy\proxy_resolver_winhttp.cc @ 60] 0f 01b5ee88 01470ea8 0644d510 065629d8 01b5f1cc chrome_1130000!net::ProxyService::UpdateConfig+0x6b [c:\b\slave\chrome-official\build\src\net\proxy\proxy_service.cc @ 433] 10 01b5f008 014893dc 0644d510 06562a50 06562a6c chrome_1130000!net::ProxyService::ResolveProxy+0x98 [c:\b\slave\chrome-official\build\src\net\proxy\proxy_service.cc @ 348] 11 01b5f250 01481a5b 0644d510 04ccdb18 00000001 chrome_1130000!net::HttpTransactionWinHttp::Start+0x18c [c:\b\slave\chrome-official\build\src\net\http\http_transaction_winhttp.cc @ 848] 12 01b5f298 7c910098 00000023 00000000 0000000f chrome_1130000!net::HttpCache::Transaction::BeginNetworkRequest+0xdc [c:\b\slave\chrome-official\build\src\net\http\http_cache.cc @ 674] 13 01b5f370 016dea70 003b0000 00000000 0001ea8f ntdll!RtlpFreeToHeapLookaside+0x22 14 7c91003d 15ffffff 1e7c93b7 ff7c93b7 00ffffff chrome_1130000!free+0x6e [f:\sp\vctools\crt_bld\self_x86\crt\src\free.c @ 110] WARNING: Frame IP not in any known module. Following frames may be wrong. 15 7c91003d 00000000 1e7c93b7 ff7c93b7 00ffffff 0x15ffffff Thread 013:2f48 # ChildEBP RetAddr Args to Child 00 02cafdfc 7c90df3c 7c91b22b 00000028 00000000 ntdll!KiFastSystemCallRet 01 02cafe00 7c91b22b 00000028 00000000 00000000 ntdll!NtWaitForSingleObject+0xc 02 02cafe88 7c901046 0197b178 7c9175e2 7c97b178 ntdll!RtlpWaitForCriticalSection+0x132 03 02cafe90 7c9175e2 7c97b178 71a8793c 00000102 ntdll!RtlEnterCriticalSection+0x46 04 02caff7c 7c80c216 71a50000 02caffb4 71a5d367 ntdll!LdrUnloadDll+0x38 05 02caff88 71a5d367 71a50000 00000000 02b0e8f8 kernel32!FreeLibraryAndExitThread+0x20 06 02caffb4 7c80b713 71a5d65f 02b0e8f8 7c90e900 mswsock!SockAsyncThread+0xe5 07 02caffec 00000000 71a5d2c6 0017bc38 00000000 kernel32!BaseThreadStart+0x37 Thread 014:3b80 # ChildEBP RetAddr Args to Child 00 0314fe14 7c90df3c 7c91b22b 00000028 00000000 ntdll!KiFastSystemCallRet 01 0314fe18 7c91b22b 00000028 00000000 00000000 ntdll!NtWaitForSingleObject+0xc 02 0314fea0 7c901046 0197b178 7c9175e2 7c97b178 ntdll!RtlpWaitForCriticalSection+0x132 03 0314fea8 7c9175e2 7c97b178 02b0f3dc 00000001 ntdll!RtlEnterCriticalSection+0x46 04 0314ff94 7c80c216 4d4f0000 0314ffb4 4d50beb6 ntdll!LdrUnloadDll+0x38 05 0314ffa0 4d50beb6 4d4f0000 00000000 7c90e900 kernel32!FreeLibraryAndExitThread+0x20 06 0314ffb4 7c80b713 4d4f0000 02b0f3dc 7c90e900 WINHTTP!CGlobalServerInfoPool::GarbageCollectorThread+0x3e 07 0314ffec 00000000 4d50be78 4d4f0000 00000000 kernel32!BaseThreadStart+0x37 Thread 015:3758 # ChildEBP RetAddr Args to Child 00 0362fe14 7c90df3c 7c91b22b 00000028 00000000 ntdll!KiFastSystemCallRet 01 0362fe18 7c91b22b 00000028 00000000 00000000 ntdll!NtWaitForSingleObject+0xc 02 0362fea0 7c901046 0197b178 7c9175e2 7c97b178 ntdll!RtlpWaitForCriticalSection+0x132 03 0362fea8 7c9175e2 7c97b178 7c910415 774e0000 ntdll!RtlEnterCriticalSection+0x46 04 0362ff94 7c80c216 774e0000 0362ffb4 774fe46f ntdll!LdrUnloadDll+0x38 05 0362ffa0 774fe46f 774e0000 00000000 00150178 kernel32!FreeLibraryAndExitThread+0x20 06 0362ffb4 7c80b713 00185910 7c910415 00150178 ole32!CRpcThreadCache::RpcWorkerThreadEntry+0x34 07 0362ffec 00000000 774fe43b 00185910 00000000 kernel32!BaseThreadStart+0x37 Thread 029:3b88 # ChildEBP RetAddr Args to Child 00 053ffe7c 7c90df3c 7c91b22b 00000028 00000000 ntdll!KiFastSystemCallRet 01 053ffe80 7c91b22b 00000028 00000000 00000000 ntdll!NtWaitForSingleObject+0xc 02 053fff08 7c901046 0197b178 7c913958 7c97b178 ntdll!RtlpWaitForCriticalSection+0x132 03 053fff10 7c913958 7c97b178 00000000 7ffaa000 ntdll!RtlEnterCriticalSection+0x46 04 053fff7c 7c80c126 00110010 7c809020 03f03fa8 ntdll!LdrShutdownThread+0x22 05 053fffb4 7c80b718 00000000 00110010 7c809020 kernel32!ExitThread+0x3e 06 053fffec 00000000 77e76c7d 03f03fa8 00000000 kernel32!BaseThreadStart+0x3c etc... BYE MAD What is the expected result? Well... we shouldn't freeze the whole app when this happens... What happens instead? None of the Chrome tabs or windows are responsive :-( Complete App freeze... Please provide any additional information below. Attach a screenshot if possible. As mentioned above, I attached a minidump... I have a full one available if needed. Attachments: ShellLockMini.dmp 88.5 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 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Chromium-bugs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/chromium-bugs?hl=en -~----------~----~----~----~------~----~------~--~---
