Closed Bug 542337 Opened 10 years ago Closed 10 years ago

[OOPP] hang in test_plugin_clipping2.xhtml

Categories

(Core :: Plug-ins, defect)

x86
Windows 7
defect
Not set

Tracking

()

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

People

(Reporter: benjamin, Assigned: bent.mozilla)

References

Details

(Whiteboard: [fixed-lorentz])

Attachments

(4 files, 2 obsolete files)

The latest revision of test_plugin_clipping2, http://hg.mozilla.org/projects/electrolysis/rev/be4144ff7790, causes a hang on Windows.

Parent stack:
 	_NtUserCallHwndLock@8()	
 	_NtUserCallHwndLock@8()	
>	nsWindow::Update() Line 2188	C++
 	nsViewManager::UpdateWidgetsForView(aView=0x04787d78) Line 1465	C++
 	nsViewManager::ForceUpdate() Line 1718	C++
 	nsViewManager::Composite() Line 552	C++
 	nsViewManager::UpdateViewAfterScroll(aView=0x04787d78, aUpdateRegion={...}) Line 622	C++
 	nsGfxScrollFrameInner::ScrollVisual(aPixDelta={...}) Line 1704	C++
 	nsGfxScrollFrameInner::ScrollToImpl(aPt={...}) Line 1781	C++
 	nsGfxScrollFrameInner::ScrollTo(aScrollPosition={...}, aMode=INSTANT) Line 1358	C++
 	nsHTMLScrollFrame::ScrollTo(aScrollPosition={...}, aMode=INSTANT) Line 414	C++
 	nsNSElementTearoff::SetScrollTop(aScrollTop=0x00000097) Line 1261	C++
 	NS_InvokeByIndex_P(that=0x099519b8, methodIndex=0x00000007, paramCount=0x00000001, params=0x0046c174) Line 103	C++
 	XPCWrappedNative::CallMethod(ccx={...}, mode=CALL_SETTER) Line 2727	C++
 	XPCWrappedNative::SetAttribute(ccx={...}) Line 2550	C++
 	XPC_WN_GetterSetter(cx=0x095336a0, obj=0x02ba8700, argc=0x00000001, argv=0x07229c64, vp=0x0046c458) Line 1792	C++
 	js_Invoke(cx=0x095336a0, argc=0x00000001, vp=0x07229c5c, flags=0x00000002) Line 1376	C++

Child stack:
>	mozilla::ipc::SyncChannel::WaitForNotify() Line 501	C++
 	mozilla::ipc::RPCChannel::Call(msg=0x036a77d8, reply=0x02c8d5e8) Line 120	C++
 	mozilla::plugins::PPluginModuleChild::CallNPN_UserAgent(userAgent=0x00613e3c) Line 94	C++
 	mozilla::plugins::PluginModuleChild::GetUserAgent() Line 314	C++
 	mozilla::plugins::child::_useragent(aNPP=0x03658ed8) Line 884	C++
 	NPN_UserAgent(instance=0x03658ed8) Line 1215	C++
 	drawToDC(instanceData=0x036aa908, dc=0x990119fd, x=0x00000000, y=0x00000000, width=0x0000012c, height=0x000000c8) Line 146	C++
 	pluginDraw(instanceData=0x036aa908) Line 222	C++
 	handleEventInternal(instanceData=0x036aa908, pe=0x02c8d798, result=0x02c8d794) Line 402	C++
 	PluginWndProc(hWnd=0x00130b02, uMsg=0x0000000f, wParam=0x00000000, lParam=0x00000000) Line 473	C++
 	_InternalCallWinProc@20()	
 	_UserCallWinProcCheckWow@32()	
 	_CallWindowProcAorW@24()	
 	_CallWindowProcW@20()	
 	mozilla::plugins::PluginInstanceChild::PluginWindowProc(hWnd=0x00130b02, message=0x0000000f, wParam=0x00000000, lParam=0x00000000) Line 700	C++
 	_InternalCallWinProc@20()	
 	_UserCallWinProcCheckWow@32()	
 	_DispatchClientMessage@24()	
 	___fnDWORD@4()	
 	_KiUserCallbackDispatcher@12()	
 	_NtUserPeekMessage@20()	
 	__PeekMessage@24()	
 	_PeekMessageW@20()	
 	PeekKeyAndIMEMessage(msg=0x02c8db08, hwnd=0x00000000) Line 83	C++
 	nsAppShell::ProcessNextNativeEvent(mayWait=0x00000001) Line 270	C++
Attached patch Patch, v1 (obsolete) — Splinter Review
Attachment #423675 - Flags: review?(jmathies)
Attachment #423675 - Flags: review?(jmathies) → review+
Comment on attachment 423675 [details] [diff] [review]
Patch, v1

+// If this window hosts a plugin window from another process then we cannot use
+// the windows UpdateWindow function to update it. Doing so sends a synchronous
+// WM_PAINT message to the plugin process which may call back to this process
+// in respons. As this process

minor typo in your last comment needs a touch up.
Pushed changeset d034c49accf6 to e10s. Also added a ValidateWindow call.
http://hg.mozilla.org/mozilla-central/rev/877d48ef5d8c
http://hg.mozilla.org/mozilla-central/rev/3a0f317aa4e9

Removed the ValidateWindow call because... there is no such function. Please re-open if that call was important!
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Sigh. It was supposed to be ValidateRect. I'll add it back.
http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1264629905.1264630563.32537.gz#err0
WINNT 5.2 mozilla-central opt test mochitests-4/5 on 2010/01/27 14:05:05  
s: win32-slave42
TEST-UNEXPECTED-FAIL | automation.py | application timed out after 330 seconds
with no output
PROCESS-CRASH | automation.py | application crashed (minidump found)
Thread 20 (crashed)

Thread 20 (crashed)
 0  crashinjectdll.dll!CrashingThread(void *) [crashinjectdll.cpp:f54bb3222492
: 13 + 0x0]
    eip = 0x00ba1000   esp = 0x03afffbc   ebp = 0x03afffec   ebx = 0x00000000
    esi = 0x00000000   edi = 0x00000000   eax = 0x00000000   ecx = 0x03afffb4
    edx = 0x7c8285ec   efl = 0x00010246
    Found by: given as instruction pointer in context
 1  kernel32.dll + 0x24828
    eip = 0x77e64829   esp = 0x03afffc0   ebp = 0x03afffec
    Found by: call frame info

Thread 0
 0  ntdll.dll + 0x285ec
    eip = 0x7c8285ec   esp = 0x0012d00c   ebp = 0x0012d01c   ebx = 0x06c97600
    esi = 0x06c97600   edi = 0x04488880   eax = 0x07f3c000   ecx = 0x034f2000
    edx = 0x00000808   efl = 0x00200286
    Found by: given as instruction pointer in context
 1  xul.dll!nsWindow::Update() [nsWindow.cpp:f54bb3222492 : 2190 + 0x5]
    eip = 0x60c1ac91   esp = 0x0012d024   ebp = 0x0012d054
    Found by: previous frame's frame pointer
 2  xul.dll!nsViewManager::UpdateWidgetsForView(nsView *)
[nsViewManager.cpp:f54bb3222492 : 1464 + 0xb]
    eip = 0x60af7379   esp = 0x0012d02c   ebp = 0x0012d054
    Found by: call frame info with scanning
 3  xul.dll!nsViewManager::ForceUpdate() [nsViewManager.cpp:f54bb3222492 : 1715
+ 0x7]
    eip = 0x60b1d610   esp = 0x0012d05c   ebp = 0x0012d0c0
    Found by: previous frame's frame pointer
 4  xul.dll!nsViewManager::Composite() + 0x10
    eip = 0x60959d61   esp = 0x0012d068   ebp = 0x0012d0c0
    Found by: call frame info with scanning
 5  xul.dll!nsGfxScrollFrameInner::ScrollVisual(nsIntPoint)
[nsGfxScrollFrame.cpp:f54bb3222492 : 1707 + 0x10]
    eip = 0x60cc234f   esp = 0x0012d0c8   ebp = 0x0012d1dc
    Found by: previous frame's frame pointer
 6  xul.dll!nsGfxScrollFrameInner::ScrollToImpl(nsPoint) + 0x93
    eip = 0x609ed615   esp = 0x0012d1e4   ebp = 0x0012d218
    Found by: previous frame's frame pointer
 7 
xul.dll!nsGfxScrollFrameInner::ScrollTo(nsPoint,nsIScrollableFrame::ScrollMode)
[nsGfxScrollFrame.cpp:f54bb3222492 : 1357 + 0x15]
    eip = 0x6075df94   esp = 0x0012d220   ebp = 0x0012d240
    Found by: previous frame's frame pointer
 8  xul.dll!nsXULScrollFrame::ScrollTo(nsPoint,nsIScrollableFrame::ScrollMode)
[nsGfxScrollFrame.h:f54bb3222492 : 413 + 0x1d]
    eip = 0x6075e01c   esp = 0x0012d248   ebp = 0x0012d274
    Found by: previous frame's frame pointer
 9  xul.dll!nsNSElementTearoff::SetScrollTop(int)
[nsGenericElement.cpp:f54bb3222492 : 1258 + 0x1a]
    eip = 0x60cd7fe2   esp = 0x0012d25c   ebp = 0x0012d274
    Found by: call frame info
10  xul.dll!NS_InvokeByIndex_P [xptcinvoke.cpp:f54bb3222492 : 102 + 0x2]
    eip = 0x6086863c   esp = 0x0012d27c   ebp = 0x0012d288
    Found by: previous frame's frame pointer
11  xul.dll!XPCWrappedNative::CallMethod(XPCCallContext
&,XPCWrappedNative::CallMode) [xpcwrappednative.cpp:f54bb3222492 : 2727 + 0x1c]
    eip = 0x606a21e1   esp = 0x0012d290   ebp = 0x0012d520
    Found by: call frame info
12  xul.dll!XPC_WN_GetterSetter(JSContext *,JSObject *,unsigned int,int *,int
*) [xpcwrappednativejsops.cpp:f54bb3222492 : 1792 + 0x16]
    eip = 0x606aa577   esp = 0x0012d528   ebp = 0x035ed340
    Found by: previous frame's frame pointer
13  mozjs.dll!js_Invoke [jsinterp.cpp:f54bb3222492 : 1376 + 0x16]
    eip = 0x60231540   esp = 0x0012d5f4   ebp = 0x0012d698
    Found by: call frame info
14  mozjs.dll!js_InternalInvoke [jsinterp.cpp:f54bb3222492 : 1439 + 0x11]
    eip = 0x60233bd3   esp = 0x0012d6a0   ebp = 0x0012d6cc
    Found by: previous frame's frame pointer
15  mozjs.dll!JSScopeProperty::set(JSContext *,JSObject *,int *)
[jsscope.h:f54bb3222492 : 857 + 0x2d]
    eip = 0x60200bc8   esp = 0x0012d6d4   ebp = 0x073bdee0
    Found by: previous frame's frame pointer
16  mozjs.dll!js_SetPropertyHelper [jsobj.cpp:f54bb3222492 : 5405 + 0x13]
    eip = 0x602187c5   esp = 0x0012d6fc   ebp = 0x050b6144
    Found by: call frame info with scanning
17  mozjs.dll!js_SetProperty [jsobj.cpp:f54bb3222492 : 5518 + 0x1a]
    eip = 0x60217a4c   esp = 0x0012d754   ebp = 0x0012d9b4
    Found by: call frame info
18  mozjs.dll!js_Interpret [jsops.cpp:f54bb3222492 : 1319 + 0x17]
    eip = 0x6022a8fe   esp = 0x0012d770   ebp = 0x0012d9b4
    Found by: call frame info
19  mozjs.dll!js_Invoke [jsinterp.cpp:f54bb3222492 : 1384 + 0x5]
    eip = 0x6023139b   esp = 0x0012d9bc   ebp = 0x0012da50
    Found by: previous frame's frame pointer
20  mozjs.dll!js_InternalInvoke [jsinterp.cpp:f54bb3222492 : 1439 + 0x11]
    eip = 0x60233bd3   esp = 0x0012da58   ebp = 0x0012da80
    Found by: previous frame's frame pointer
21  mozjs.dll!JS_CallFunctionValue [jsapi.cpp:f54bb3222492 : 5120 + 0x26]
    eip = 0x60253fa7   esp = 0x0012da88   ebp = 0x0012db1c
    Found by: previous frame's frame pointer
22  xul.dll!nsJSContext::CallEventHandler(nsISupports *,void *,void *,nsIArray
*,nsIVariant * *) [nsJSEnvironment.cpp:f54bb3222492 : 2168 + 0x24]
    eip = 0x60704cf1   esp = 0x0012dab0   ebp = 0x0012db1c
    Found by: call frame info
23  xul.dll!nsGlobalWindow::RunTimeout(nsTimeout *)
[nsGlobalWindow.cpp:f54bb3222492 : 8095 + 0x77]
    eip = 0x60640485   esp = 0x0012db24   ebp = 0x0012dbf8
    Found by: previous frame's frame pointer
24  xul.dll!nsGlobalWindow::TimerCallback(nsITimer *,void *)
[nsGlobalWindow.cpp:f54bb3222492 : 8439 + 0x8]
    eip = 0x6070b91a   esp = 0x0012dc00   ebp = 0x0012dc1c
    Found by: previous frame's frame pointer
25  xul.dll!nsTimerImpl::Fire() [nsTimerImpl.cpp:f54bb3222492 : 427 + 0x6]
    eip = 0x606f5735   esp = 0x0012dc24   ebp = 0x603cccd0
    Found by: previous frame's frame pointer
26  nspr4.dll!_PR_MD_UNLOCK [w95cv.c:f54bb3222492 : 344 + 0x6]
    eip = 0x603d9f4f   esp = 0x0012dc3c   ebp = 0x07e0c190
    Found by: call frame info with scanning
27  xul.dll!nsTimerEvent::Run() [nsTimerImpl.cpp:f54bb3222492 : 519 + 0x4]
    eip = 0x606f5560   esp = 0x0012dc44   ebp = 0x07e0c190
    Found by: call frame info with scanning
28  xul.dll!nsThread::ProcessNextEvent(int,int *) [nsThread.cpp:f54bb3222492 :
527 + 0x4]
    eip = 0x606ad3d6   esp = 0x0012dc4c   ebp = 0x07e0c190
    Found by: call frame info
29  xul.dll!mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate *)
[MessagePump.cpp:f54bb3222492 : 142 + 0x19]
    eip = 0x606e35a8   esp = 0x0012dc7c   ebp = 0x606ad3d6
    Found by: call frame info with scanning
30  xul.dll + 0x9c727b
    eip = 0x60fb727c   esp = 0x0012dcac   ebp = 0x00000001
    Found by: call frame info
31  xul.dll!MessageLoop::RunHandler() [message_loop.cc:f54bb3222492 : 194 +
0xd]
    eip = 0x60831a30   esp = 0x0012dcbc   ebp = 0x00000001
    Found by: stack scanning
32  ntdll.dll + 0x2e24b
    eip = 0x7c82e24c   esp = 0x0012dcd4   ebp = 0x00000001
    Found by: stack scanning
33  xul.dll!_IsNonwritableInCurrentImage + 0x19
    eip = 0x608f8594   esp = 0x0012dce8   ebp = 0x00000001
    Found by: stack scanning
34  xul.dll!MessageLoop::Run() [message_loop.cc:f54bb3222492 : 168 + 0x6]
    eip = 0x608319f8   esp = 0x0012dcf8   ebp = 0x00000001
    Found by: stack scanning
35  xul.dll!nsBaseAppShell::Run() [nsBaseAppShell.cpp:f54bb3222492 : 174 +
0x13]
    eip = 0x60830b49   esp = 0x0012dd30   ebp = 0x00000001
    Found by: stack scanning
36  nspr4.dll!PR_GetEnv + 0xa
    eip = 0x603cbdc0   esp = 0x0012dd34   ebp = 0x00000001
    Found by: call frame info
37  xul.dll!nsAppShell::Run() [nsAppShell.cpp:f54bb3222492 : 239 + 0xa]
    eip = 0x6085b3da   esp = 0x0012dd3c   ebp = 0x00000001
    Found by: stack scanning
38  0x7c7fffff
    eip = 0x7c800000   esp = 0x0012dd68   ebp = 0x00000001
    Found by: stack scanning
39  0x77e3ffff
    eip = 0x77e40000   esp = 0x0012dd88   ebp = 0x00000001
    Found by: stack scanning
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Attached patch Followup patch, v1 (obsolete) — Splinter Review
Bah. Apparently UpdateWindow recursively updates child windows, too. This is more complicated but avoids child windows.
Attachment #423894 - Flags: review?(jmathies)
Attachment #423894 - Flags: review?(jmathies) → review+
Looks like the same issue.

http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1264651664.1264652704.20733.gz
8783 INFO Running chrome://mochikit/content/chrome/widget/tests/test_plugin_scroll_consistency.html...
8784 INFO TEST-PASS | chrome://mochikit/content/chrome/widget/tests/test_plugin_scroll_consistency.html | Consistency check: Initial state:
NEXT ERROR TEST-UNEXPECTED-FAIL | automation.py | application timed out after 330 seconds with no output

Thread 22 (crashed)
 0  crashinjectdll.dll!CrashingThread(void *) [crashinjectdll.cpp:9259fdc3570c : 13 + 0x0]
    eip = 0x00ba1000   esp = 0x03afffbc   ebp = 0x03afffec   ebx = 0x00000000
    esi = 0x00000000   edi = 0x00000000   eax = 0x00000000   ecx = 0x03afffb4
    edx = 0x7c8285ec   efl = 0x00010246
    Found by: given as instruction pointer in context
 1  kernel32.dll + 0x24828
    eip = 0x77e64829   esp = 0x03afffc0   ebp = 0x03afffec
    Found by: call frame info

Thread 0
 0  ntdll.dll + 0x285ec
    eip = 0x7c8285ec   esp = 0x0012d02c   ebp = 0x0012d03c   ebx = 0x039b6560
    esi = 0x039b6560   edi = 0x034ba460   eax = 0x05f2e000   ecx = 0x00000020
    edx = 0x00000000   efl = 0x00200206
    Found by: given as instruction pointer in context
 1  xul.dll!nsWindow::Update() [nsWindow.cpp:9259fdc3570c : 2190 + 0x5]
    eip = 0x60c134bd   esp = 0x0012d044   ebp = 0x0012d074
    Found by: previous frame's frame pointer
 2  xul.dll!nsViewManager::UpdateWidgetsForView(nsView *) [nsViewManager.cpp:9259fdc3570c : 1464 + 0xb]
    eip = 0x60af8790   esp = 0x0012d04c   ebp = 0x0012d074
    Found by: call frame info with scanning
 3  xul.dll!nsViewManager::ForceUpdate() [nsViewManager.cpp:9259fdc3570c : 1715 + 0x7]
    eip = 0x60b1f665   esp = 0x0012d07c   ebp = 0x0012d0e0
    Found by: previous frame's frame pointer
 4  xul.dll!nsViewManager::Composite() + 0x10
    eip = 0x6095ab27   esp = 0x0012d088   ebp = 0x0012d0e0
    Found by: call frame info with scanning
 5  xul.dll!nsGfxScrollFrameInner::ScrollVisual(nsIntPoint) [nsGfxScrollFrame.cpp:9259fdc3570c : 1707 + 0x10]
    eip = 0x60cc79f2   esp = 0x0012d0e8   ebp = 0x0012d1fc
    Found by: previous frame's frame pointer
 6  xul.dll!nsGfxScrollFrameInner::ScrollToImpl(nsPoint) + 0x93
    eip = 0x609f5ae8   esp = 0x0012d204   ebp = 0x0012d238
    Found by: previous frame's frame pointer
 7  xul.dll!nsGfxScrollFrameInner::ScrollTo(nsPoint,nsIScrollableFrame::ScrollMode) [nsGfxScrollFrame.cpp:9259fdc3570c : 1357 + 0x15]
    eip = 0x60650a43   esp = 0x0012d240   ebp = 0x0012d260
    Found by: previous frame's frame pointer
 8  xul.dll!nsXULScrollFrame::ScrollTo(nsPoint,nsIScrollableFrame::ScrollMode) [nsGfxScrollFrame.h:9259fdc3570c : 413 + 0x1d]
    eip = 0x60650961   esp = 0x0012d268   ebp = 0x0012d294
    Found by: previous frame's frame pointer
 9  xul.dll!nsNSElementTearoff::SetScrollTop(int) [nsGenericElement.cpp:9259fdc3570c : 1258 + 0x1a]
    eip = 0x60cd234c   esp = 0x0012d27c   ebp = 0x0012d294
    Found by: call frame info
10  xul.dll!NS_InvokeByIndex_P [xptcinvoke.cpp:9259fdc3570c : 102 + 0x2]
    eip = 0x6086907c   esp = 0x0012d29c   ebp = 0x0012d2a8
    Found by: previous frame's frame pointer
11  xul.dll!XPCWrappedNative::CallMethod(XPCCallContext &,XPCWrappedNative::CallMode) [xpcwrappednative.cpp:9259fdc3570c : 2727 + 0x1c]
    eip = 0x606d7f81   esp = 0x0012d2b0   ebp = 0x0012d540
    Found by: call frame info
12  xul.dll!XPC_WN_GetterSetter(JSContext *,JSObject *,unsigned int,int *,int *) [xpcwrappednativejsops.cpp:9259fdc3570c : 1792 + 0x16]
    eip = 0x606cfee7   esp = 0x0012d548   ebp = 0x03504ca0
    Found by: previous frame's frame pointer
13  mozjs.dll!js_Invoke [jsinterp.cpp:9259fdc3570c : 1376 + 0x14]
    eip = 0x60222545   esp = 0x0012d614   ebp = 0x0012d6b0
    Found by: call frame info
14  mozjs.dll!js_InternalInvoke [jsinterp.cpp:9259fdc3570c : 1439 + 0x11]
    eip = 0x6023b603   esp = 0x0012d6b8   ebp = 0x0012d6e4
    Found by: previous frame's frame pointer
15  mozjs.dll!JSScopeProperty::set(JSContext *,JSObject *,int *) [jsscope.h:9259fdc3570c : 857 + 0x2d]
    eip = 0x60256ff8   esp = 0x0012d6ec   ebp = 0x05125ec0
    Found by: previous frame's frame pointer
16  mozjs.dll!js_SetPropertyHelper [jsobj.cpp:9259fdc3570c : 5405 + 0x13]
    eip = 0x60239f75   esp = 0x0012d714   ebp = 0x0012d7cc
    Found by: call frame info with scanning
17  mozjs.dll!js_Interpret [jsops.cpp:9259fdc3570c : 1890 + 0x11]
    eip = 0x602289b8   esp = 0x0012d76c   ebp = 0x0012d9bc
    Found by: call frame info
18  mozjs.dll!js_Invoke [jsinterp.cpp:9259fdc3570c : 1384 + 0x5]
    eip = 0x602223ac   esp = 0x0012d9c4   ebp = 0x0012da50
    Found by: previous frame's frame pointer
19  mozjs.dll!js_InternalInvoke [jsinterp.cpp:9259fdc3570c : 1439 + 0x11]
    eip = 0x6023b603   esp = 0x0012da58   ebp = 0x0012da80
    Found by: previous frame's frame pointer
20  mozjs.dll!JS_CallFunctionValue [jsapi.cpp:9259fdc3570c : 5120 + 0x26]
    eip = 0x60252a57   esp = 0x0012da88   ebp = 0x0012db1c
    Found by: previous frame's frame pointer
21  xul.dll!nsJSContext::CallEventHandler(nsISupports *,void *,void *,nsIArray *,nsIVariant * *) [nsJSEnvironment.cpp:9259fdc3570c : 2168 + 0x24]
    eip = 0x60757f51   esp = 0x0012dab0   ebp = 0x0012db1c
    Found by: call frame info
22  xul.dll!nsGlobalWindow::RunTimeout(nsTimeout *) [nsGlobalWindow.cpp:9259fdc3570c : 8095 + 0x77]
    eip = 0x60692145   esp = 0x0012db24   ebp = 0x0012dbf8
    Found by: previous frame's frame pointer
23  xul.dll!nsGlobalWindow::TimerCallback(nsITimer *,void *) [nsGlobalWindow.cpp:9259fdc3570c : 8439 + 0x8]
    eip = 0x6075fdd7   esp = 0x0012dc00   ebp = 0x0012dc1c
    Found by: previous frame's frame pointer
24  xul.dll!nsTimerImpl::Fire() [nsTimerImpl.cpp:9259fdc3570c : 427 + 0x6]
    eip = 0x60686a05   esp = 0x0012dc24   ebp = 0x603cccd0
    Found by: previous frame's frame pointer
25  nspr4.dll!_PR_MD_UNLOCK [w95cv.c:9259fdc3570c : 344 + 0x6]
    eip = 0x603d9f4f   esp = 0x0012dc3c   ebp = 0x036ef4f0
    Found by: call frame info with scanning
26  xul.dll!nsTimerEvent::Run() [nsTimerImpl.cpp:9259fdc3570c : 519 + 0x4]
    eip = 0x60686a6c   esp = 0x0012dc44   ebp = 0x036ef4f0
    Found by: call frame info with scanning
27  xul.dll!nsThread::ProcessNextEvent(int,int *) [nsThread.cpp:9259fdc3570c : 527 + 0x4]
    eip = 0x606ce5b8   esp = 0x0012dc4c   ebp = 0x036ef4f0
    Found by: call frame info
This might be related. (I'll attach a test case.) Resizing the main window sometimes results in a locked up browser / desktop. ctrl-alt-del and selecting the task manager un-deadlocks the desktop, the browser remains frozen.
(In reply to comment #9)
> Looks like the same issue.
> 
> http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1264651664.1264652704.20733.gz
> 8783 INFO Running
> chrome://mochikit/content/chrome/widget/tests/test_plugin_scroll_consistency.html...
> 8784 INFO TEST-PASS |
> chrome://mochikit/content/chrome/widget/tests/test_plugin_scroll_consistency.html
> | Consistency check: Initial state:
> NEXT ERROR TEST-UNEXPECTED-FAIL | automation.py | application timed out after
> 330 seconds with no output


I filed a bug on this test this morning, might be a dupe of this - bug 542759.
Undoes some of attachment 423675 [details] [diff] [review] and uses a much simpler method.

For OOP plugins we now don't use the WS_CLIPCHILDREN style so that we can intercept WM_PAINT messages in the parent process. We then synchronously update the plugin via RPC (which runs the deferred message loop) and then call ValidateRect before returning. This seems to avoid the painting deadlock entirely.
Attachment #423675 - Attachment is obsolete: true
Attachment #423894 - Attachment is obsolete: true
Attachment #424057 - Flags: review?(jmathies)
Attachment #424057 - Flags: review?(jmathies) → review+
Pushed changeset b3f9b762cab4 to e10s.
Pushed changeset a119900cf074 to mozilla-central.
Status: REOPENED → RESOLVED
Closed: 10 years ago10 years ago
Resolution: --- → FIXED
How will this approach work if some plugins run out of process and others don't?
Landed followup on m-c and e10s.
Blocks: 542759
Blanket approval for Lorentz merge to mozilla-1.9.2
a=beltzner for 1.9.2.4 - please make sure to mark status1.9.2:.4-fixed
You need to log in before you can comment on or make changes to this bug.