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)

x86
Windows 7
defect
Not set
normal

Tracking

(blocking1.9.2 .4+, status1.9.2 .4-fixed)

RESOLVED FIXED
Tracking Status
blocking1.9.2 --- .4+
status1.9.2 --- .4-fixed

People

(Reporter: benjamin, Assigned: jimm)

References

Details

(Whiteboard: [qa-noaction-192])

Attachments

(1 file)

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.
OS: Linux → Windows 7
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.
Attached patch patch.txt (deleted) — Splinter Review
Attachment #440825 - Flags: review?
Attachment #440825 - Flags: review? → review?(benjamin)
Attachment #440825 - Flags: review?(benjamin) → review+
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
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+
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!
Is there a mechanism to trigger this problem that can be used for bug verification purposes?
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.
Whiteboard: [qa-noaction-192]
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: