Closed
Bug 561117
Opened 15 years ago
Closed 15 years ago
hang-pair: hang|mozilla::plugins::PPluginInstanceParent::CallNPP_SetWindow(mozilla::plugins::NPRemoteWindow const &) against hang|NtUserMessageCall | SendMessageWorker
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(blocking1.9.2 .4+, status1.9.2 .4-fixed)
RESOLVED
FIXED
People
(Reporter: benjamin, Assigned: jimm)
References
Details
(Whiteboard: [qa-noaction-192])
Attachments
(1 file)
(deleted),
patch
|
benjamin
:
review+
beltzner
:
approval1.9.2.4+
|
Details | Diff | Splinter Review |
browser report:
https://crash-stats.mozilla.com/report/index/b763b09b-4985-4ea0-8282-be96b2100411
plugin report:
https://crash-stats.mozilla.com/report/index/08ebe77e-2f8d-4dd7-83e4-bded22100411
browser stack, in detail:
... hang xul.dll!mozilla::plugins::PPluginInstanceParent::CallNPP_SetWindow(window={...}) Line 179 C++
xul.dll!mozilla::plugins::PluginInstanceParent::NPP_SetWindow(aWindow=0x15dcb484) Line 446 C++
xul.dll!mozilla::plugins::PluginModuleParent::NPP_SetWindow(instance=0x0dfc8acc, window=0x15dcb484) Line 418 C++
xul.dll!nsNPAPIPluginInstance::SetWindow(window=0x15dcb484) Line 1429 C++
xul.dll!nsObjectFrame::PaintPlugin(aRenderingContext={...}, aDirtyRect={...}, aPluginRect={...}) Line 1830 C++
xul.dll!nsDisplayPlugin::Paint(aBuilder=0x002dbbb0, aCtx=0x10677480) Line 1229 C++
xul.dll!nsDisplayList::Paint(aBuilder=0x002dbbb0, aCtx=0x10677480) Line 405 C++
xul.dll!nsDisplayClip::Paint(aBuilder=0x002dbbb0, aCtx=0x10677480) Line 1201 C++
xul.dll!nsLayoutUtils::PaintFrame(aRenderingContext=0x10677480, aFrame=0x11a7f120, aDirtyRegion={...}, aBackstop=0xffffffff, aFlags=0x00000000) Line 1145 C++
xul.dll!PresShell::Paint(aView=0x163eed60, aRenderingContext=0x10677480, aDirtyRegion={...}) Line 5842 C++
xul.dll!nsViewManager::RenderViews(aView=0x00000000, aRC={...}, aRegion={...}) Line 534 C++
xul.dll!nsViewManager::Refresh(aView=0x00000000, aContext=0x0f2b5490, aRegion=0x10677480, aUpdateFlags=0x62e5bc10) Line 494 C++
xul.dll!nsViewManager::DispatchEvent(aEvent=, aView=, aStatus=) Line 1008 C++
xul.dll!HandleEvent(aEvent=0x00000001) Line 168 C++
xul.dll!nsWindow::DispatchEvent(event=0x002dc0b8, aStatus=nsEventStatus_eIgnore) Line 2979 C++
xul.dll!nsWindow::DispatchWindowEvent(event=0x002dc0b8, aStatus=nsEventStatus_eIgnore) Line 3013 C++
xul.dll!nsWindow::OnPaint(aDC=0x00000000) Line 568 C++
xul.dll!nsWindow::ProcessMessage(msg=0x0000000f, wParam=0x00000000, lParam=0x00000000, aRetValue=0x002dc2e8) Line 4016 C++
xul.dll!nsWindow::WindowProc(hWnd=0x00000001, msg=0x0000000f, wParam=0x00000000, lParam=0x00000000) Line 3715 C++
user32.dll!_InternalCallWinProc@20()
user32.dll!_UserCallWinProcCheckWow@32()
user32.dll!_DispatchClientMessage@24()
user32.dll!___fnDWORD@4()
ntdll.dll!_KiUserCallbackDispatcher@12()
user32.dll!_UpdateWindow@4()
xul.dll!nsWindow::Update() Line 2144 C++
xul.dll!nsViewManager::UpdateWidgetsForView(aView=0x077357c0) Line 1604 C++
xul.dll!nsViewManager::ForceUpdate() Line 1869 C++
xul.dll!nsViewManager::Composite() Line 588 C++
xul.dll!nsViewManager::EnableRefresh(aUpdateFlags=0x00000002) Line 1774 C++
xul.dll!nsViewManager::EndUpdateViewBatch(aUpdateFlags=0x00000002) Line 1823 C++
xul.dll!nsIViewManager::UpdateViewBatch::EndUpdateViewBatch(aUpdateFlags=0x00000002) Line 390 C++
xul.dll!nsEditor::EndUpdateViewBatch() Line 4406 C++
xul.dll!nsCOMPtr_base::assign_from_qi(qi={...}, iid={...}) Line 96 C++
xul.dll!nsEditor::EndPlaceHolderTransaction() Line 997 C++
xul.dll!nsAutoPlaceHolderBatch::~nsAutoPlaceHolderBatch() Line 65 C++
xul.dll!nsPlaintextEditor::InsertText(aStringToInsert={...}) Line 808 C++
xul.dll!nsTextControlFrame::SetValue(aValue=) Line 2689 C++
xul.dll!nsCycleCollectingAutoRefCnt::decr(owner=0x0a650500) Line 199 C++
xul.dll!nsGenericElement::Release() Line 4155 C++
xul.dll!nsCOMPtr_base::~nsCOMPtr_base() Line 82 C++
xul.dll!nsTextControlFrame::SetFormProperty(aName=0x00000000, aValue={...}) Line 1897 C++
xul.dll!nsHTMLInputElement::SetValueInternal(aValue={...}, aFrame=0x62df4a01, aUserInput=0x00000000) Line 1117 C++
xul.dll!nsHTMLInputElement::SetValue(aValue={...}) Line 930 C++
xul.dll!nsIDOMHTMLInputElement_SetValue(cx=0x00b27c00, obj=0x0a676e20, id=0x03616294, vp=0x002dc8c0) Line 11297 C++
js3250.dll!js_SetSprop(cx=0x00000000, sprop=0x079832b0, obj=0x00000000, vp=0x002dc8c0) Line 636 C++
js3250.dll!js_SetPropertyHelper(cx=0x00b27c00, obj=0x0a676e20, id=0x03616294, cacheResult=0x00000001, vp=0x002dc8c0) Line 4460 C++
js3250.dll!js_Interpret(cx=) Line 1854 C++
js3250.dll!js_Invoke(cx=0x00b27c00, argc=0x00000001, vp=0x07c87508, flags=0x00000000) Line 1368 C++
js3250.dll!js_InternalInvoke(cx=0x00b27c00, obj=0x0a665200, fval=0x0a665740, flags=0x00000000, argc=0x00000001, argv=0x002dcc80, rval=0x002dcc80) Line 1423 C++
js3250.dll!js_InternalGetOrSet() Line 1486 C++
js3250.dll!js_SetSprop(cx=0x00000000, sprop=0x0a614770, obj=0x00000000, vp=0x002dcc80) Line 625 C++
js3250.dll!js_SetPropertyHelper(cx=0x00b27c00, obj=0x0a665200, id=0x03616294, cacheResult=0x00000001, vp=0x002dcc80) Line 4460 C++
js3250.dll!js_Interpret(cx=) Line 1854 C++
js3250.dll!js_Invoke(cx=0x00b27c00, argc=0x00000001, vp=0x07c872f0, flags=0x00000000) Line 1368 C++
js3250.dll!js_InternalInvoke(cx=0x00b27c00, obj=0x0763fc20, fval=0x0abbf0c0, flags=0x00000000, argc=0x00000001, argv=0x07c872ec, rval=0x002dcfa8) Line 1423 C++
js3250.dll!JS_CallFunctionValue(cx=0x00b27c00, obj=0x0763fc20, fval=0x0abbf0c0, argc=0x00000001, argv=0x07c872ec, rval=0x002dcfa8) Line 5113 C++
xul.dll!nsJSContext::CallEventHandler(aTarget=0x07645df0, aScope=0x05bf38c0, aHandler=0x0abbf0c0, aargv=0x0f2b51b0, arv=0x002dd038) Line 2135 C++
xul.dll!nsJSEventListener::HandleEvent(aEvent=0x14bdf3a0) Line 266 C++
xul.dll!nsEventListenerManager::HandleEventSubType(aListenerStruct=0x00000000, aListener=0x07640940, aDOMEvent=0x00000000, aCurrentTarget=0x07645df0, aPhaseFlags=0x002dd2e8) Line 1041 C++
xul.dll!nsEventListenerManager::HandleEvent(aPresContext=0x0718a400, aEvent=0x14bdf3d0, aDOMEvent=0x002dd380, aCurrentTarget=0x07645df0, aFlags=0x00000002, aEventStatus=0x002dd384) Line 1147 C++
xul.dll!nsEventTargetChainItem::HandleEventTargetChain(aVisitor={...}, aFlags=0x00000006, aCallback=0x00000000, aMayHaveNewListenerManagers=0x00000000) Line 334 C++
xul.dll!nsEventDispatcher::Dispatch(aTarget=, aPresContext=, aEvent=, aDOMEvent=, aEventStatus=, aCallback=, aTargets=) Line 577 C++
xul.dll!nsEventDispatcher::DispatchDOMEvent(aTarget=0x0760d220, aEvent=0x00000000, aDOMEvent=0x00000000, aPresContext=0x0718a400, aEventStatus=0x002dd424) Line 636 C++
xul.dll!nsEventListenerManager::DispatchEvent(aEvent=0x14bdf3a0, _retval=0x002dd46c) Line 1274 C++
xul.dll!nsDOMEventRTTearoff::DispatchEvent(aEvt=0x14bdf3a0, _retval=0x002dd46c) Line 1672 C++
xul.dll!nsIDOMEventTarget_DispatchEvent(cx=0x00b27c00, argc=0x00000001, vp=0x07c872c4) Line 7640 C++
js3250.dll!js_Interpret(cx=0x00b27c00) Line 2208 C++
js3250.dll!js_Invoke(cx=0x00b27c00, argc=0x00000001, vp=0x07c872b0, flags=0x00000000) Line 1368 C++
js3250.dll!js_InternalInvoke(cx=0x00b27c00, obj=0x0763fec0, fval=0x0763ff20, flags=0x00000000, argc=0x00000001, argv=0x002dd880, rval=0x002dd880) Line 1423 C++
js3250.dll!js_InternalGetOrSet() Line 1486 C++
js3250.dll!js_SetSprop(cx=0x00000000, sprop=0x04ea7ab0, obj=0x00000000, vp=0x002dd880) Line 625 C++
js3250.dll!js_SetPropertyHelper(cx=0x00b27c00, obj=0x0763fec0, id=0x071bbb44, cacheResult=0x00000001, vp=0x002dd880) Line 4460 C++
js3250.dll!js_Interpret(cx=) Line 1854 C++
js3250.dll!js_Invoke(cx=0x00b27c00, argc=0x00000001, vp=0x07c87280, flags=0x00000000) Line 1368 C++
js3250.dll!js_InternalInvoke(cx=0x00b27c00, obj=0x0763fec0, fval=0x0764b000, flags=0x00000000, argc=0x00000001, argv=0x002ddc40, rval=0x002ddc40) Line 1423 C++
js3250.dll!js_InternalGetOrSet() Line 1486 C++
js3250.dll!js_SetSprop(cx=0x00000000, sprop=0x04ea7ad0, obj=0x00000000, vp=0x002ddc40) Line 625 C++
js3250.dll!js_SetPropertyHelper(cx=0x00b27c00, obj=0x0763fec0, id=0x0781136c, cacheResult=0x00000001, vp=0x002ddc40) Line 4460 C++
js3250.dll!js_Interpret(cx=) Line 1854 C++
js3250.dll!js_Interpret(cx=) Line 2208 C++
js3250.dll!js_Invoke(cx=0x00b27c00, argc=0x00000001, vp=0x07c8722c, flags=0x00000000) Line 1368 C++
js3250.dll!js_InternalInvoke(cx=0x00b27c00, obj=0x0764b140, fval=0x0764b300, flags=0x00000000, argc=0x00000001, argv=0x002de000, rval=0x002de000) Line 1423 C++
js3250.dll!js_InternalGetOrSet() Line 1486 C++
js3250.dll!js_SetSprop(cx=0x00000000, sprop=0x04ea7c90, obj=0x00000000, vp=0x002de000) Line 625 C++
js3250.dll!js_SetPropertyHelper(cx=0x00b27c00, obj=0x0764b140, id=0x071bbb44, cacheResult=0x00000001, vp=0x002de000) Line 4460 C++
js3250.dll!js_Interpret(cx=) Line 1854 C++
xul.dll!XPC_WN_Helper_GetProperty(cx=0x0000071e, obj=0x0000ffff, idval=0x00000001, vp=0x00000000) Line 1026 C++
xul.dll!nsCOMPtr_base::assign_from_qi(qi={...}, iid={...}) Line 96 C++
xul.dll!XPC_WN_GetterSetter(cx=0x62e8826c, obj=0x62e882da, argc=0x00002000, argv=0x00000000, vp=0x002de698) Line 1763 C++
xul.dll!XPCConvert::NativeInterface2JSObject(lccx=, d=, dest=, src=, iid=, Interface=, cache=, scope=, allowNativeWrapper=, isGlobal=, pErr=) Line 1400 C++
xul.dll!XPCConvert::NativeData2JS(lccx={...}, d=0x002de698, s=0x002de8d4, type={...}, iid=0x51ae56a1, scope=0x09ff8280, pErr=0x630f8b43) Line 471 C++
xul.dll!XPCConvert::NativeData2JS(ccx={...}, d=0x00000001, s=0x00000000, type={...}, iid=0x07c87020, scope=0x00000000, pErr=0x00000000) Line 2979 C++
xul.dll!nsXPCWrappedJSClass::CallMethod(wrapper=0x0a017f00, methodIndex=0x0003, info=0x03a130e0, nativeParams=0x002de8d4) Line 1697 C++
xul.dll!nsXPCWrappedJS::CallMethod(methodIndex=0x0003, info=0x03a130e0, params=0x002de8d4) Line 571 C++
xul.dll!PrepareAndDispatch(self=0x0a019fb0, methodIndex=0x00000003, args=0x002de98c, stackBytesToPop=0x002de97c) Line 114 C++
xul.dll!SharedStub() Line 142 C++
xul.dll!nsEventListenerManager::HandleEventSubType(aListenerStruct=0x00000000, aListener=0x0a019fb0, aDOMEvent=0x00000000, aCurrentTarget=0x0760d1c0, aPhaseFlags=0x002dead0) Line 1041 C++
xul.dll!nsEventListenerManager::HandleEvent(aPresContext=0x0718a400, aEvent=0x002ded74, aDOMEvent=0x002deb68, aCurrentTarget=0x0760d1c0, aFlags=0x00000002, aEventStatus=0x002deb6c) Line 1147 C++
xul.dll!nsEventTargetChainItem::HandleEventTargetChain(aVisitor={...}, aFlags=0x00000006, aCallback=0x002debf0, aMayHaveNewListenerManagers=0x00000000) Line 334 C++
xul.dll!nsEventDispatcher::Dispatch(aTarget=, aPresContext=, aEvent=, aDOMEvent=, aEventStatus=, aCallback=, aTargets=) Line 577 C++
xul.dll!nsEventStateManager::AddRef() Line 974 C++
xul.dll!PresShell::HandleEventInternal(aEvent=, aView=, aStatus=) Line 6518 C++
xul.dll!PresShell::HandlePositionedEvent(aView=0x077357c0, aTargetFrame=0x00000000, aEvent=0x002ded74, aEventStatus=0x002dec9c) Line 6362 C++
xul.dll!PresShell::HandleEvent(aView=0x077357c0, aEvent=0x002ded74, aEventStatus=0x002dec9c) Line 6297 C++
xul.dll!nsViewManager::HandleEvent(aView=0x00000000, aPoint={...}, aEvent=0x002ded74, aCaptured=0x002ded04) Line 1227 C++
xul.dll!nsViewManager::DispatchEvent(aEvent=0x002ded74, aView=0x077357c0, aStatus=0x002ded38) Line 1211 C++
xul.dll!HandleEvent(aEvent=0x00000000) Line 168 C++
xul.dll!nsWindow::DispatchEvent(event=0x002ded74, aStatus=nsEventStatus_eIgnore) Line 2979 C++
xul.dll!nsWindow::DispatchWindowEvent(event=0x00000000) Line 3008 C++
xul.dll!nsWindow::OnMouseWheel(msg=0x00000000, wParam=0x00000001, lParam=0x00a902ce, getWheelInfo=0x002def30, result=0x00000000, aRetValue=0x002df118) Line 5379 C++
xul.dll!__SEH_epilog4_GS() C++
xul.dll!nsWindow::HandleScrollingPlugins(aMsg=0x0000020a, aWParam=0xff880000, aLParam=0x00a902ce, aHandled=0x00000000, aRetValue=0x002df118, aQuitProcessing=0x00000000) Line 6173 C++
xul.dll!nsWindow::OnMouseWheel(msg=0x00000000, wParam=0x00000001, lParam=0x00a902ce, getWheelInfo=0x00040c1a, result=0x00000000, aRetValue=0x002df118) Line 5331 C++
xul.dll!__SEH_epilog4_GS() C++
xul.dll!nsWindow::WindowProc(hWnd=0x00000001, msg=0x0000020a, wParam=0xff880000, lParam=0x00a902ce) Line 3715 C++
user32.dll!_InternalCallWinProc@20()
user32.dll!_UserCallWinProcCheckWow@32()
user32.dll!_CallWindowProcAorW@24()
user32.dll!_CallWindowProcW@20()
> xul.dll!mozilla::plugins::PluginInstanceParent::PluginWindowHookProc(hWnd=0x00040c1a, message=0x0000020a, wParam=0xff880000, lParam=0x00a902ce) Line 943 C++
user32.dll!_InternalCallWinProc@20()
user32.dll!_UserCallWinProcCheckWow@32()
user32.dll!_CallWindowProcAorW@24()
user32.dll!_CallWindowProcW@20()
xul.dll!PluginWndProc(hWnd=0x00040c1a, msg=0x00202d88, wParam=0xff880000, lParam=0x00a902ce) Line 360 C++
user32.dll!_InternalCallWinProc@20()
user32.dll!_UserCallWinProcCheckWow@32()
user32.dll!_DispatchClientMessage@24()
user32.dll!___fnDWORD@4()
ntdll.dll!_KiUserCallbackDispatcher@12()
user32.dll!__PeekMessage@24()
user32.dll!_PeekMessageW@20()
xul.dll!nsAppShell::ProcessNextNativeEvent(mayWait=0x00000001) Line 172 C++
plugin stack, in detail:
user32.dll!_NtUserMessageCall@28()
user32.dll!_SendMessageWorker@24()
user32.dll!_SendMessageW@16()
user32.dll!_RealDefWindowProcWorker@24()
user32.dll!_RealDefWindowProcW@16()
> user32.dll!_DefWindowProcW@16()
NPSWF32.dll!729611e3()
[Frames below may be incorrect and/or missing, no symbols loaded for NPSWF32.dll]
msctf.dll!MemCache_Add()
0290f29c()
msctf.dll!CInputContext::_UpdateKeyEventFilterCallback()
user32.dll!_InternalCallWinProc@20()
user32.dll!_UserCallWinProcCheckWow@32()
user32.dll!_CallWindowProcAorW@24()
user32.dll!_CallWindowProcW@20()
xul.dll!mozilla::plugins::PluginInstanceChild::PluginWindowProc(hWnd=0x00ea03ae, message=0x0000020a, wParam=0x00780008, lParam=0x028602f9) Line 836 C++
user32.dll!_InternalCallWinProc@20()
user32.dll!_UserCallWinProcCheckWow@32()
user32.dll!_DispatchMessageWorker@8()
user32.dll!_DispatchMessageW@4()
xul.dll!base::MessagePumpForUI::ProcessMessageHelper(msg={...}) Line 364 C++
The plugin, via something in IME, appears to be dispatching a WM_MOUSEWHEEL event at the plugin wrapper window. jimm, whack-a-mole!
There were only 8 of these in my hang report, so it may not be a blocker, but sounds like something we could fix easily.
Assignee | ||
Updated•15 years ago
|
OS: Linux → Windows 7
Reporter | ||
Comment 1•15 years ago
|
||
After further analysis, this same message also appears to be responsible for most of the child stacks
15 hang|KiFastSystemCallRet | NtUserMessageCall | SendMessageW
15 hang|KiFastSystemCallRet | NtUserMessageCall | RealDefWindowProcA
So I think it should block.
Assignee | ||
Comment 2•15 years ago
|
||
Attachment #440825 -
Flags: review?
Assignee | ||
Updated•15 years ago
|
Attachment #440825 -
Flags: review? → review?(benjamin)
Reporter | ||
Updated•15 years ago
|
Attachment #440825 -
Flags: review?(benjamin) → review+
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
http://hg.mozilla.org/releases/mozilla-1.9.2/rev/2e12fc0d07f4 (default)
http://hg.mozilla.org/releases/mozilla-1.9.2/rev/830ce17f8c9c (relbranch)
status1.9.2:
--- → .4-fixed
Comment 5•15 years ago
|
||
Chris: you checked this in without approval. I'll give it a post-hoc approval, but please do NOT do this again.
blocking1.9.2: ? → .4+
Updated•15 years ago
|
Attachment #440825 -
Flags: approval1.9.2.4+
AIIEEE!! I lumped this in with a group with other 1.9.2 stuff that had approval and guess I didn't check this one, apologies!
Comment 7•15 years ago
|
||
Is there a mechanism to trigger this problem that can be used for bug verification purposes?
Reporter | ||
Comment 8•15 years ago
|
||
We don't know of one, no; this bug came entirely out of hang report analysis. It's obviously related to mouse-wheel events of some sort, so you could try using the mousewheel on various sites to try and come up with a set of STR. Otherwise we'll have to wait for another beta push to verify using crash data.
Updated•15 years ago
|
Whiteboard: [qa-noaction-192]
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•