Jump to content

Recommended Posts

Posted

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:

+0

00000000`00000000 ?? ???

EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff)

ExceptionAddress: 0000000000000000

ExceptionCode: 80000007 (Wake debugger)

ExceptionFlags: 00000000

NumberParameters: 0

BUGCHECK_STR: 80000007

PROCESS_NAME: iexplore.exe

ERROR_CODE: (NTSTATUS) 0x80000007 - {Kernel Debugger Awakened} the system debugger was awakened by an interrupt.

NTGLOBALFLAG: 0

APPLICATION_VERIFIER_FLAGS: 0

DERIVED_WAIT_CHAIN:

Dl Eid Cid WaitType

-- --- ------- --------------------------

0 a34.1910 Unknown

WAIT_CHAIN_COMMAND: ~0s;k;;

BLOCKING_THREAD: 0000000000001910

DEFAULT_BUCKET_ID: APPLICATION_HANG_BusyHang

PRIMARY_PROBLEM_CLASS: APPLICATION_HANG_BusyHang

LAST_CONTROL_TRANSFER: from 000000007586abfe to 000000007585373f

FAULTING_THREAD: 0000000000000000

STACK_TEXT:

00000000`0019ea48 00000000`7586abfe : 00000000`77520000 00000000`0019fd20 00000000`711a3bef 00000000`0019f400 : wow64cpu!WaitForMultipleObjects32+0x3a

00000000`0019eaf0 00000000`7586a202 : 00000000`00000000 00000000`00000000 00000000`75863298 00000000`7ffe0030 : wow64!RunCpuSimulation+0xa

00000000`0019eb20 00000000`7755e23d : 00000000`77520000 00000000`00000000 00000000`7efdf000 00000000`7efdf000 : wow64!Wow64LdrpInitialize+0x492

00000000`0019f080 00000000`775ce974 : 00000000`00000000 00000000`7755d58b 00000000`7efdb000 00000000`00000000 : ntdll!LdrpInitializeProcess+0x1333

00000000`0019f310 00000000`7756c4ee : 00000000`0019f400 00000000`00000000 00000000`7efdf000 00000000`00000000 : ntdll! ?? ::FNODOBFM::`string'+0x1d641

00000000`0019f3b0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!LdrInitializeThunk+0xe

FOLLOWUP_IP:

wow64cpu!WaitForMultipleObjects32+3a

00000000`7585373f 418bbda0000000 mov edi,dword ptr [r13+0A0h]

SYMBOL_STACK_INDEX: 0

SYMBOL_NAME: wow64cpu!WaitForMultipleObjects32+3a

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: wow64cpu

IMAGE_NAME: wow64cpu.dll

DEBUG_FLR_IMAGE_TIMESTAMP: 4549d372

STACK_COMMAND: ~0s ; kb

BUCKET_ID: X64_80000007_wow64cpu!WaitForMultipleObjects32+3a

FAILURE_BUCKET_ID: APPLICATION_HANG_BusyHang_80000007_wow64cpu.dll!WaitForMultipleObjects32

Followup: MachineOwner


Posted

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).

Posted

good catch.. here is the output using the x86 version of debugging tools...

Microsoft ® Windows Debugger Version 6.9.0003.113 X86

Copyright © 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 available

Comment: '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:\websymbols

Executable search path is:

Windows Vista Version 6000 MP (2 procs) Free x86 compatible

Product: WinNt, suite: SingleUserTS

Debug session time: Tue Jun 3 14:35:23.000 2008 (GMT-7)

System Uptime: 1 days 0:09:13.270

Process 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=00000000

eip=7771aec5 esp=003be5d8 ebp=003be670 iopl=0 nv up ei pl nz na po nc

cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202

ntdll!ZwWaitForMultipleObjects+0x15:

7771aec5 c21400 ret 14h

0: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:

+0

00000000 ?? ???

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)

ExceptionAddress: 00000000

ExceptionCode: 80000007 (Wake debugger)

ExceptionFlags: 00000000

NumberParameters: 0

BUGCHECK_STR: 80000007

DEFAULT_BUCKET_ID: APPLICATION_HANG

PROCESS_NAME: iexplore.exe

ERROR_CODE: (NTSTATUS) 0x80000007 - {Kernel Debugger Awakened} the system debugger was awakened by an interrupt.

NTGLOBALFLAG: 0

APPLICATION_VERIFIER_FLAGS: 0

DERIVED_WAIT_CHAIN:

Dl Eid Cid WaitType

-- --- ------- --------------------------

4 1f04.1da0 Unknown

WAIT_CHAIN_COMMAND: ~4s;k;;

BLOCKING_THREAD: 00001da0

PRIMARY_PROBLEM_CLASS: APPLICATION_HANG

LAST_CONTROL_TRANSFER: from 72fff38c to 7623832a

FAULTING_THREAD: 00000004

STACK_TEXT:

0368f78c 72fff38c 00000000 00000000 004d7b78 user32!NtUserWaitMessage+0x15

0368f7f0 763d19f1 004e4478 0368f83c 7774d109 ieframe!CTabWindow::_TabWindowThreadProc+0x2d0

0368f7fc 7774d109 004d7b78 0368060d 00000000 kernel32!BaseThreadInitThunk+0xe

0368f83c 00000000 72ffe48c 004d7b78 00000000 ntdll!_RtlUserThreadStart+0x23

FOLLOWUP_IP:

ieframe!CTabWindow::_TabWindowThreadProc+2d0

72fff38c a100701b73 mov eax,dword ptr [ieframe!WPP_GLOBAL_Control (731b7000)]

SYMBOL_STACK_INDEX: 1

SYMBOL_NAME: ieframe!CTabWindow::_TabWindowThreadProc+2d0

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: ieframe

IMAGE_NAME: ieframe.dll

DEBUG_FLR_IMAGE_TIMESTAMP: 47bd006c

STACK_COMMAND: ~4s ; kb

BUCKET_ID: 80000007_ieframe!CTabWindow::_TabWindowThreadProc+2d0

FAILURE_BUCKET_ID: APPLICATION_HANG_80000007_ieframe.dll!CTabWindow::_TabWindowThreadProc

Followup: MachineOwner

---------

Posted

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.

Posted
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 :).

Posted

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 Unfrozen
ChildEBP RetAddr Args to Child
003be5d4 7636edb5 00000002 003be624 00000001 ntdll!NtWaitForMultipleObjects+0x15
003be670 7623944c 003be624 003be698 00000000 kernel32!WaitForMultipleObjectsEx+0x11d
003be6c4 7135605c 00000048 003be6f8 ffffffff user32!RealMsgWaitForMultipleObjectsEx+0x14d
003be6e4 7135634e 000004ff ffffffff 00000000 ieui!CoreSC::Wait+0x49
003be70c 71356178 000004ff 00000000 730199b5 ieui!CoreSC::WaitMessage+0x54
003be718 730199b5 00473698 00451f50 00000000 ieui!WaitMessageEx+0x33
003be748 7300ac3c 004738d0 003be778 7300bcab ieframe!CBrowserFrame::FrameMessagePump+0x199
003be754 7300bcab 00000000 00000000 00473698 ieframe!BrowserThreadProc+0x3f
003be778 7300bbf9 15310008 00473698 00000000 ieframe!BrowserNewThreadProc+0x7b
003bf7e8 7300baa9 00473698 759d6bc1 00000000 ieframe!SHOpenFolderWindow+0x188
003bfa18 00a7147c 0046ee88 00000001 00a80070 ieframe!IEWinMain+0x2d9
003bfe5c 00a71317 00a70000 00000000 00451070 iexplore!wWinMain+0x2c1
003bfef0 763d19f1 7efde000 003bff3c 7774d109 iexplore!__wmainCRTStartup+0x150
003bfefc 7774d109 7efde000 003b010d 00000000 kernel32!BaseThreadInitThunk+0xe
003bff3c 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 Unfrozen
ChildEBP RetAddr Args to Child
02aafb68 7636edb5 00000002 02aafbb8 00000001 ntdll!NtWaitForMultipleObjects+0x15
02aafc04 7623944c 02aafbb8 02aafc2c 00000000 kernel32!WaitForMultipleObjectsEx+0x11d
02aafc58 7135605c 0000013c 02aafc8c ffffffff user32!RealMsgWaitForMultipleObjectsEx+0x14d
02aafc78 71359441 000004ff ffffffff 00000001 ieui!CoreSC::Wait+0x49
02aafcac 71359982 02aafcec 00000000 00000000 ieui!CoreSC::xwProcessNL+0xa4
02aafccc 713598e0 02aafcec 00000000 00000000 ieui!GetMessageExA+0x44
02aafd20 760662b6 00000000 0f0ef223 00000000 ieui!ResourceManager::SharedThreadProc+0xb6
02aafd58 760663de 02aafd6c 763d19f1 00f64648 msvcrt!_callthreadstartex+0x1b
02aafd60 763d19f1 00f64648 02aafdac 7774d109 msvcrt!_threadstartex+0x5f
02aafd6c 7774d109 00f64648 02aa039d 00000000 kernel32!BaseThreadInitThunk+0xe
02aafdac 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 Unfrozen
ChildEBP RetAddr Args to Child
0368f78c 72fff38c 00000000 00000000 004d7b78 user32!NtUserWaitMessage+0x15
0368f7f0 763d19f1 004e4478 0368f83c 7774d109 ieframe!CTabWindow::_TabWindowThreadProc+0x2d0
0368f7fc 7774d109 004d7b78 0368060d 00000000 kernel32!BaseThreadInitThunk+0xe
0368f83c 00000000 72ffe48c 004d7b78 00000000 ntdll!_RtlUserThreadStart+0x23

The 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.

  • 4 months later...
Posted

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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...