damianp Posted June 3, 2008 Posted June 3, 2008 So, I have a php website that utilizes a basic javascript function (open a popup window) , which passes in the url of a html file that loads a flash movie.when I click the "preview" link for hte popup on two different flash movies, the first one loads fine, the second time the window opens - IE never sends the request. I have installed fiddler and javascript debuggers , the request never leaves the browser. Any subsequent links that require session calls to the server are non-responsive. It works just fine in Firefox. So I'm not sure what it can be. I'm leaning towards something within IE? As I can rule the code out, since nothing ever gets posted from the browser...I did a dump of IE and analyzed it.. here is the outcome of it... I don't see anything that jumps out at me? maybe you guys can see something?I am running on vista ultimate x64... This only happens in IE7. IE6 works fine. (On both Vista and XP)Thanx in advance.0:000> !analyze -v******************************************************************************** ** Exception Analysis ** *********************************************************************************** WARNING: symbols timestamp is wrong 0x47bd0101 0x47bd006c for ieframe.dll*** WARNING: symbols timestamp is wrong 0x4549d2e1 0x4549d374 for wow64win.dll**************************************************************************** ****** ****** Your debugger is not using the correct symbols ****** ****** In order for this command to work properly, your symbol path ****** must point to .pdb files that have full type information. ****** ****** Certain .pdb files (such as the public OS symbols) do not ****** contain the required information. Contact the group that ****** provided you with these symbols if you need this command to ****** work. ****** ****** Type referenced: kernel32!pNlsUserInfo ****** ******************************************************************************************************************************************************** ****** ****** Your debugger is not using the correct symbols ****** ****** In order for this command to work properly, your symbol path ****** must point to .pdb files that have full type information. ****** ****** Certain .pdb files (such as the public OS symbols) do not ****** contain the required information. Contact the group that ****** provided you with these symbols if you need this command to ****** work. ****** ****** Type referenced: kernel32!pNlsUserInfo ****** ****************************************************************************FAULTING_IP: +000000000`00000000 ?? ???EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff)ExceptionAddress: 0000000000000000 ExceptionCode: 80000007 (Wake debugger) ExceptionFlags: 00000000NumberParameters: 0BUGCHECK_STR: 80000007PROCESS_NAME: iexplore.exeERROR_CODE: (NTSTATUS) 0x80000007 - {Kernel Debugger Awakened} the system debugger was awakened by an interrupt.NTGLOBALFLAG: 0APPLICATION_VERIFIER_FLAGS: 0DERIVED_WAIT_CHAIN: Dl Eid Cid WaitType-- --- ------- -------------------------- 0 a34.1910 Unknown WAIT_CHAIN_COMMAND: ~0s;k;;BLOCKING_THREAD: 0000000000001910DEFAULT_BUCKET_ID: APPLICATION_HANG_BusyHangPRIMARY_PROBLEM_CLASS: APPLICATION_HANG_BusyHangLAST_CONTROL_TRANSFER: from 000000007586abfe to 000000007585373fFAULTING_THREAD: 0000000000000000STACK_TEXT: 00000000`0019ea48 00000000`7586abfe : 00000000`77520000 00000000`0019fd20 00000000`711a3bef 00000000`0019f400 : wow64cpu!WaitForMultipleObjects32+0x3a00000000`0019eaf0 00000000`7586a202 : 00000000`00000000 00000000`00000000 00000000`75863298 00000000`7ffe0030 : wow64!RunCpuSimulation+0xa00000000`0019eb20 00000000`7755e23d : 00000000`77520000 00000000`00000000 00000000`7efdf000 00000000`7efdf000 : wow64!Wow64LdrpInitialize+0x49200000000`0019f080 00000000`775ce974 : 00000000`00000000 00000000`7755d58b 00000000`7efdb000 00000000`00000000 : ntdll!LdrpInitializeProcess+0x133300000000`0019f310 00000000`7756c4ee : 00000000`0019f400 00000000`00000000 00000000`7efdf000 00000000`00000000 : ntdll! ?? ::FNODOBFM::`string'+0x1d64100000000`0019f3b0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!LdrInitializeThunk+0xeFOLLOWUP_IP: wow64cpu!WaitForMultipleObjects32+3a00000000`7585373f 418bbda0000000 mov edi,dword ptr [r13+0A0h]SYMBOL_STACK_INDEX: 0SYMBOL_NAME: wow64cpu!WaitForMultipleObjects32+3aFOLLOWUP_NAME: MachineOwnerMODULE_NAME: wow64cpuIMAGE_NAME: wow64cpu.dllDEBUG_FLR_IMAGE_TIMESTAMP: 4549d372STACK_COMMAND: ~0s ; kbBUCKET_ID: X64_80000007_wow64cpu!WaitForMultipleObjects32+3aFAILURE_BUCKET_ID: APPLICATION_HANG_BusyHang_80000007_wow64cpu.dll!WaitForMultipleObjects32Followup: MachineOwner
cluberti Posted June 3, 2008 Posted June 3, 2008 One problem (major) - you used a 64bit debugger to dump a 32bit process (wow64). You really should download/install the x86 version of the debugging tools, open a command prompt, and run adplus against the iexplore.exe process (instructions here).
damianp Posted June 3, 2008 Author Posted June 3, 2008 good catch.. here is the output using the x86 version of debugging tools...Microsoft ® Windows Debugger Version 6.9.0003.113 X86Copyright © Microsoft Corporation. All rights reserved.Loading Dump File [C:\adplus\Hang_Mode__Date_06-03-2008__Time_14-35-21PM\PID-7940__IEXPLORE.EXE__full_1f10_2008-06-03_14-35-22-350_1f04.dmp]User Mini Dump File with Full Memory: Only application data is availableComment: 'Full dump in Hang Mode for IEXPLORE.EXE_running_on_DAMIAN-HP'Symbol search path is: SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols;c:\websymbolsExecutable search path is: Windows Vista Version 6000 MP (2 procs) Free x86 compatibleProduct: WinNt, suite: SingleUserTSDebug session time: Tue Jun 3 14:35:23.000 2008 (GMT-7)System Uptime: 1 days 0:09:13.270Process Uptime: 0 days 0:01:23.000................................................................................................................................Loading unloaded module list.........This dump file has an exception of interest stored in it.The stored exception information can be accessed via .ecxr.(1f04.1fa4): Wake debugger - code 80000007 (first/second chance not available)eax=00000048 ebx=00000002 ecx=00000000 edx=00000000 esi=00000000 edi=00000000eip=7771aec5 esp=003be5d8 ebp=003be670 iopl=0 nv up ei pl nz na po nccs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202ntdll!ZwWaitForMultipleObjects+0x15:7771aec5 c21400 ret 14h0:000> !analyze -v******************************************************************************** ** Exception Analysis ** *********************************************************************************** WARNING: Unable to verify checksum for pdm.dll*** ERROR: Symbol file could not be found. Defaulted to export symbols for pdm.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for Flash9f.ocx - **************************************************************************** ****** ****** Your debugger is not using the correct symbols ****** ****** In order for this command to work properly, your symbol path ****** must point to .pdb files that have full type information. ****** ****** Certain .pdb files (such as the public OS symbols) do not ****** contain the required information. Contact the group that ****** provided you with these symbols if you need this command to ****** work. ****** ****** Type referenced: kernel32!pNlsUserInfo ****** ******************************************************************************************************************************************************** ****** ****** Your debugger is not using the correct symbols ****** ****** In order for this command to work properly, your symbol path ****** must point to .pdb files that have full type information. ****** ****** Certain .pdb files (such as the public OS symbols) do not ****** contain the required information. Contact the group that ****** provided you with these symbols if you need this command to ****** work. ****** ****** Type referenced: kernel32!pNlsUserInfo ****** ****************************************************************************FAULTING_IP: +000000000 ?? ???EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)ExceptionAddress: 00000000 ExceptionCode: 80000007 (Wake debugger) ExceptionFlags: 00000000NumberParameters: 0BUGCHECK_STR: 80000007DEFAULT_BUCKET_ID: APPLICATION_HANGPROCESS_NAME: iexplore.exeERROR_CODE: (NTSTATUS) 0x80000007 - {Kernel Debugger Awakened} the system debugger was awakened by an interrupt.NTGLOBALFLAG: 0APPLICATION_VERIFIER_FLAGS: 0DERIVED_WAIT_CHAIN: Dl Eid Cid WaitType-- --- ------- -------------------------- 4 1f04.1da0 Unknown WAIT_CHAIN_COMMAND: ~4s;k;;BLOCKING_THREAD: 00001da0PRIMARY_PROBLEM_CLASS: APPLICATION_HANGLAST_CONTROL_TRANSFER: from 72fff38c to 7623832aFAULTING_THREAD: 00000004STACK_TEXT: 0368f78c 72fff38c 00000000 00000000 004d7b78 user32!NtUserWaitMessage+0x150368f7f0 763d19f1 004e4478 0368f83c 7774d109 ieframe!CTabWindow::_TabWindowThreadProc+0x2d00368f7fc 7774d109 004d7b78 0368060d 00000000 kernel32!BaseThreadInitThunk+0xe0368f83c 00000000 72ffe48c 004d7b78 00000000 ntdll!_RtlUserThreadStart+0x23FOLLOWUP_IP: ieframe!CTabWindow::_TabWindowThreadProc+2d072fff38c a100701b73 mov eax,dword ptr [ieframe!WPP_GLOBAL_Control (731b7000)]SYMBOL_STACK_INDEX: 1SYMBOL_NAME: ieframe!CTabWindow::_TabWindowThreadProc+2d0FOLLOWUP_NAME: MachineOwnerMODULE_NAME: ieframeIMAGE_NAME: ieframe.dllDEBUG_FLR_IMAGE_TIMESTAMP: 47bd006cSTACK_COMMAND: ~4s ; kbBUCKET_ID: 80000007_ieframe!CTabWindow::_TabWindowThreadProc+2d0FAILURE_BUCKET_ID: APPLICATION_HANG_80000007_ieframe.dll!CTabWindow::_TabWindowThreadProcFollowup: MachineOwner---------
cluberti Posted June 3, 2008 Posted June 3, 2008 Can you put that somewhere? It appears thread 0 (the UI thread) is in a wait on something else in process.
damianp Posted June 3, 2008 Author Posted June 3, 2008 that's just it... the popup window (i'm assuming the thread) just spins, never loading the flash file... Tracing it with fiddler shows IE never making a request, nothing happens. This is why I'm bummed. It's not my code - as it never gets to my code, so I Can't step thru it. The only thing I see executing is the javascript that opens the new popup window, and everything after that stops. So I was wondering maybe debugging IE on the OS level would tell me why it stops sending requests.
cluberti Posted June 4, 2008 Posted June 4, 2008 that's just it... the popup window (i'm assuming the thread) just spins, never loading the flash file... Tracing it with fiddler shows IE never making a request, nothing happens. This is why I'm bummed. It's not my code - as it never gets to my code, so I Can't step thru it. The only thing I see executing is the javascript that opens the new popup window, and everything after that stops. So I was wondering maybe debugging IE on the OS level would tell me why it stops sending requests.Maybe, but I'd need to see the .dmp file myself .
damianp Posted June 4, 2008 Author Posted June 4, 2008 duh. Sorry...here you go.http://www.holdmyown.org/ie_dump.zip 47mb zipped. 147mb unzipped.
cluberti Posted June 4, 2008 Posted June 4, 2008 The request never left the browser, because the new window (actually, it looks like it's a tab) was never opened:// The UI thread, which is trying to create a new browser window (ieframe!BrowwserNewThreadProc),// and it's waiting on multiple objects (events, in this case) before it can continue. Since this is the UI// thread, it will "hang" IE's UI completely until these events clear.... 0 Id: 1f04.1fa4 Suspend: 1 Teb: 7efdd000 UnfrozenChildEBP RetAddr Args to Child 003be5d4 7636edb5 00000002 003be624 00000001 ntdll!NtWaitForMultipleObjects+0x15003be670 7623944c 003be624 003be698 00000000 kernel32!WaitForMultipleObjectsEx+0x11d003be6c4 7135605c 00000048 003be6f8 ffffffff user32!RealMsgWaitForMultipleObjectsEx+0x14d003be6e4 7135634e 000004ff ffffffff 00000000 ieui!CoreSC::Wait+0x49003be70c 71356178 000004ff 00000000 730199b5 ieui!CoreSC::WaitMessage+0x54003be718 730199b5 00473698 00451f50 00000000 ieui!WaitMessageEx+0x33003be748 7300ac3c 004738d0 003be778 7300bcab ieframe!CBrowserFrame::FrameMessagePump+0x199003be754 7300bcab 00000000 00000000 00473698 ieframe!BrowserThreadProc+0x3f003be778 7300bbf9 15310008 00473698 00000000 ieframe!BrowserNewThreadProc+0x7b003bf7e8 7300baa9 00473698 759d6bc1 00000000 ieframe!SHOpenFolderWindow+0x188003bfa18 00a7147c 0046ee88 00000001 00a80070 ieframe!IEWinMain+0x2d9003bfe5c 00a71317 00a70000 00000000 00451070 iexplore!wWinMain+0x2c1003bfef0 763d19f1 7efde000 003bff3c 7774d109 iexplore!__wmainCRTStartup+0x150003bfefc 7774d109 7efde000 003b010d 00000000 kernel32!BaseThreadInitThunk+0xe003bff3c 00000000 00a72e45 7efde000 00000000 ntdll!_RtlUserThreadStart+0x23// The worker thread spawned to create a new window via the C runtimes and ieui. It's also waiting// on multiple event objects in another thread... 1 Id: 1f04.1d58 Suspend: 1 Teb: 7efda000 UnfrozenChildEBP RetAddr Args to Child 02aafb68 7636edb5 00000002 02aafbb8 00000001 ntdll!NtWaitForMultipleObjects+0x1502aafc04 7623944c 02aafbb8 02aafc2c 00000000 kernel32!WaitForMultipleObjectsEx+0x11d02aafc58 7135605c 0000013c 02aafc8c ffffffff user32!RealMsgWaitForMultipleObjectsEx+0x14d02aafc78 71359441 000004ff ffffffff 00000001 ieui!CoreSC::Wait+0x4902aafcac 71359982 02aafcec 00000000 00000000 ieui!CoreSC::xwProcessNL+0xa402aafccc 713598e0 02aafcec 00000000 00000000 ieui!GetMessageExA+0x4402aafd20 760662b6 00000000 0f0ef223 00000000 ieui!ResourceManager::SharedThreadProc+0xb602aafd58 760663de 02aafd6c 763d19f1 00f64648 msvcrt!_callthreadstartex+0x1b02aafd60 763d19f1 00f64648 02aafdac 7774d109 msvcrt!_threadstartex+0x5f02aafd6c 7774d109 00f64648 02aa039d 00000000 kernel32!BaseThreadInitThunk+0xe02aafdac 00000000 7606639b 00f64648 00000000 ntdll!_RtlUserThreadStart+0x23// ...and this thread is actually responsible for tracking the window creating, but it failed to create// the event proxy, and the new window has stalled/failed): 2 Id: 1f04.1da0 Suspend: 1 Teb: 7efac000 UnfrozenChildEBP RetAddr Args to Child 0368f78c 72fff38c 00000000 00000000 004d7b78 user32!NtUserWaitMessage+0x150368f7f0 763d19f1 004e4478 0368f83c 7774d109 ieframe!CTabWindow::_TabWindowThreadProc+0x2d00368f7fc 7774d109 004d7b78 0368060d 00000000 kernel32!BaseThreadInitThunk+0xe0368f83c 00000000 72ffe48c 004d7b78 00000000 ntdll!_RtlUserThreadStart+0x23The HRESULT for this (the return value that CTabWindow::_TabWindowThreadProc actually returns) was 2147483655, which translates to OPERATION_ABORTED. I think what's actually happening is the navigation abort is probably a timing issue in IE7, and the abort is happening early or somesuch and IE gets stuck because the other events are not signaled causing the hang up.If possible, check your PM.
ski.surf Posted October 6, 2008 Posted October 6, 2008 I realize this is an old thread, but did you ever get this resolved? I am having this same issue and am looking for a solution that will allow me to not "lockup" IE.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now