Closed Bug 1220010 Opened 4 years ago Closed 4 years ago

Permaorange in five Windows suites after merge of Gecko 43 to beta: Assertion failure: !mozilla::ipc::MessageChannel::IsPumpingMessages(), at c:/builds/moz2_slave/m-beta-w32-d-00000000000000000/build/widget/windows/nsWindow.cpp:4412

Categories

(Core :: Plug-ins, defect, blocker)

defect
Not set
blocker

Tracking

()

RESOLVED FIXED
Tracking Status
firefox43 --- fixed
firefox44 --- fixed
firefox45 --- fixed
firefox46 --- unaffected

People

(Reporter: philor, Assigned: aklotz)

References

Details

Attachments

(1 file)

mochitest-2, in test_fullscreen-api.html : https://treeherder.mozilla.org/logviewer.html#?job_id=614392&repo=mozilla-beta

mochitest-3, in dom/plugins/test/mochitest/test_bug1092842.html : https://treeherder.mozilla.org/logviewer.html#?job_id=614393&repo=mozilla-beta

crashtest, in dom/plugins/test/crashtests/539897-1.html : https://treeherder.mozilla.org/logviewer.html#?job_id=614387&repo=mozilla-beta

One of several things keeping beta closed.
Wups, I forgot browser-chrome-2, in browser/base/content/test/general/browser_tab_dragdrop.js: https://treeherder.mozilla.org/logviewer.html#?job_id=614365&repo=mozilla-beta and mochitest-oth, in dom/plugins/test/mochitest/test_wmode.xul, https://treeherder.mozilla.org/logviewer.html#?job_id=614341&repo=mozilla-beta
Summary: Permaorange in three Windows suites after merge of Gecko 43 to beta: Assertion failure: !mozilla::ipc::MessageChannel::IsPumpingMessages(), at c:/builds/moz2_slave/m-beta-w32-d-00000000000000000/build/widget/windows/nsWindow.cpp:4412 → Permaorange in five Windows suites after merge of Gecko 43 to beta: Assertion failure: !mozilla::ipc::MessageChannel::IsPumpingMessages(), at c:/builds/moz2_slave/m-beta-w32-d-00000000000000000/build/widget/windows/nsWindow.cpp:4412
Jim, do you know any reasons why plugin or widget code would be behaving differently on Beta than Aurora?

#01: nsWindow::WindowProcInternal(HWND__ *,unsigned int,unsigned int,long) [widget/windows/nsWindow.cpp:4604]

#02: CallWindowProcCrashProtected [xpcom/base/nsCrashOnException.cpp:35]

#03: nsWindow::WindowProc(HWND__ *,unsigned int,unsigned int,long) [widget/windows/nsWindow.cpp:4564]

#04: USER32 + 0x8734

#05: USER32 + 0x8816

#06: USER32 + 0x18ea0

#07: USER32 + 0x18eec

#08: ntdll + 0xe453

#09: nsWindow::Enable(bool) [widget/windows/nsWindow.cpp:1824]

#10: nsPluginInstanceOwner::CreateWidget() [dom/plugins/base/nsPluginInstanceOwner.cpp:2988]

#11: nsPluginHost::CreateWidget(nsPluginInstanceOwner *) [dom/plugins/base/nsPluginHost.cpp:3578]

#12: nsPluginInstanceOwner::NotifyHostCreateWidget() [dom/plugins/base/nsPluginInstanceOwner.cpp:1520]

#13: mozilla::plugins::PPluginInstanceParent::OnMessageReceived(IPC::Message const &) [obj-firefox/ipc/ipdl/PPluginInstanceParent.cpp:1504]

#14: mozilla::plugins::PPluginModuleParent::OnMessageReceived(IPC::Message const &) [obj-firefox/ipc/ipdl/PPluginModuleParent.cpp:923]

#15: mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const &) [ipc/glue/MessageChannel.cpp:1390]

#16: mozilla::ipc::MessageChannel::DispatchMessageW(IPC::Message const &) [ipc/glue/MessageChannel.cpp:1309]

#17: mozilla::ipc::MessageChannel::OnMaybeDequeueOne() [ipc/glue/MessageChannel.cpp:1281]

#18: mozilla::ipc::MessageChannel::WaitForIncomingMessage() [ipc/glue/MessageChannel.cpp:1179]

#19: mozilla::plugins::PluginAsyncSurrogate::WaitForInit() [dom/plugins/ipc/PluginAsyncSurrogate.cpp:530]

#20: mozilla::plugins::PluginAsyncSurrogate::ScriptableHasProperty(NPObject *,void *) [dom/plugins/ipc/PluginAsyncSurrogate.cpp:811]

#21: NPObjWrapper_Resolve [dom/plugins/base/nsJSNPRuntime.cpp:1680]

#22: js::CallResolveOp [js/src/vm/NativeObject-inl.h:391]

#23: js::LookupOwnPropertyInline<1> [js/src/vm/NativeObject-inl.h:484]

#24: NativeGetPropertyInline<1> [js/src/vm/NativeObject.cpp:1912]

#25: js::NativeGetProperty(JSContext *,JS::Handle<js::NativeObject *>,JS::Handle<JS::Value>,JS::Handle<jsid>,JS::MutableHandle<JS::Value>) [js/src/vm/NativeObject.cpp:1956]

#26: js::GetProperty(JSContext *,JS::Handle<JSObject *>,JS::Handle<JS::Value>,js::PropertyName *,JS::MutableHandle<JS::Value>) [js/src/jsobj.h:834]

#27: js::GetProperty(JSContext *,JS::Handle<JS::Value>,JS::Handle<js::PropertyName *>,JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:4207]

#28: js::CallProperty(JSContext *,JS::Handle<JS::Value>,JS::Handle<js::PropertyName *>,JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:4216]

#29: GetPropertyOperation [js/src/vm/Interpreter.cpp:254]

#30: Interpret [js/src/vm/Interpreter.cpp:2794]

#31: js::RunScript(JSContext *,js::RunState &) [js/src/vm/Interpreter.cpp:706]

#32: js::Invoke(JSContext *,JS::CallArgs const &,js::MaybeConstruct) [js/src/vm/Interpreter.cpp:783]

#33: js::Invoke(JSContext *,JS::Value const &,JS::Value const &,unsigned int,JS::Value const *,JS::MutableHandle<JS::Value>) [js/src/vm/Interpreter.cpp:820]

#34: JS::Call(JSContext *,JS::Handle<JS::Value>,JS::Handle<JS::Value>,JS::HandleValueArray const &,JS::MutableHandle<JS::Value>) [js/src/jsapi.cpp:4624]

#35: mozilla::dom::EventHandlerNonNull::Call(JSContext *,JS::Handle<JS::Value>,mozilla::dom::Event &,JS::MutableHandle<JS::Value>,mozilla::ErrorResult &) [obj-firefox/dom/bindings/EventHandlerBinding.cpp:260]

#36: mozilla::dom::EventHandlerNonNull::Call<nsISupports *>(nsISupports * const &,mozilla::dom::Event &,JS::MutableHandle<JS::Value>,mozilla::ErrorResult &,char const *,mozilla::dom::CallbackObject::ExceptionHandling,JSCompartment *) [obj-firefox/dist/include/mozilla/dom/EventHandlerBinding.h:351]

#37: mozilla::JSEventHandler::HandleEvent(nsIDOMEvent *) [dom/events/JSEventHandler.cpp:216]

#38: mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener *,nsIDOMEvent *,mozilla::dom::EventTarget *) [dom/events/EventListenerManager.cpp:1011]

#39: mozilla::EventListenerManager::HandleEventInternal(nsPresContext *,mozilla::WidgetEvent *,nsIDOMEvent * *,mozilla::dom::EventTarget *,nsEventStatus *) [dom/events/EventListenerManager.cpp:1139]

#40: mozilla::EventListenerManager::HandleEvent(nsPresContext *,mozilla::WidgetEvent *,nsIDOMEvent * *,mozilla::dom::EventTarget *,nsEventStatus *) [dom/events/EventListenerManager.h:350]

#41: mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor &,mozilla::ELMCreationDetector &) [dom/events/EventDispatcher.cpp:225]

#42: mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem> &,mozilla::EventChainPostVisitor &,mozilla::EventDispatchingCallback *,mozilla::ELMCreationDetector &) [dom/events/EventDispatcher.cpp:316]

#43: mozilla::EventDispatcher::Dispatch(nsISupports *,nsPresContext *,mozilla::WidgetEvent *,nsIDOMEvent *,nsEventStatus *,mozilla::EventDispatchingCallback *,nsTArray<mozilla::dom::EventTarget *> *) [dom/events/EventDispatcher.cpp:654]

#44: nsDocumentViewer::LoadComplete(nsresult) [layout/base/nsDocumentViewer.cpp:992]

#45: nsDocShell::EndPageLoad(nsIWebProgress *,nsIChannel *,nsresult) [docshell/base/nsDocShell.cpp:7373]

#46: nsDocShell::OnStateChange(nsIWebProgress *,nsIRequest *,unsigned int,nsresult) [docshell/base/nsDocShell.cpp:7185]

#47: nsDocLoader::DoFireOnStateChange(nsIWebProgress * const,nsIRequest * const,int &,nsresult) [uriloader/base/nsDocLoader.cpp:1252]

#48: nsDocLoader::doStopDocumentLoad(nsIRequest *,nsresult) [uriloader/base/nsDocLoader.cpp:831]

#49: nsDocLoader::DocLoaderIsEmpty(bool) [uriloader/base/nsDocLoader.cpp:723]

#50: nsDocLoader::OnStopRequest(nsIRequest *,nsISupports *,nsresult) [uriloader/base/nsDocLoader.cpp:609]

#51: nsLoadGroup::RemoveRequest(nsIRequest *,nsISupports *,nsresult) [netwerk/base/nsLoadGroup.cpp:640]

#52: nsDocument::DoUnblockOnload() [dom/base/nsDocument.cpp:9082]

#53: nsDocument::UnblockOnload(bool) [dom/base/nsDocument.cpp:9009]

#54: nsDocument::DispatchContentLoadedEvents() [dom/base/nsDocument.cpp:5165]

#55: nsRunnableMethodImpl<void ( nsDocument::*)(void),1>::Run() [xpcom/glue/nsThreadUtils.h:870]

#56: nsThread::ProcessNextEvent(bool,bool *) [xpcom/threads/nsThread.cpp:950]
Flags: needinfo?(jmathies)
It's because of async plugin init. I think there might be an assertion that needs updating. I'll take this.
Assignee: nobody → aklotz
Status: NEW → ASSIGNED
Flags: needinfo?(jmathies)
Looks to me like this is fallout from bug 1218473. I suggest that we disable async init until that bug is resolved.
Attached patch PatchSplinter Review
Self reviewed, a trivial pref change

Approval Request Comment
[Feature/regressing bug #]: bug 1218473
[User impact if declined]: Multiple assertions in beta. Will reenable when regressing bug is fixed.
[Describe test coverage new/current, TreeHerder]: Plugin test suite
[Risks and why]: None, simple pref change
[String/UUID change made/needed]: None
Attachment #8681407 - Flags: review+
Attachment #8681407 - Flags: approval-mozilla-beta?
Landed this in https://hg.mozilla.org/releases/mozilla-beta/rev/28839ea39b96 since we aren't going to actually go anywhere with beta until after we fix bug 1220018, but getting this landed will both tell us whether or not it works and tell us whether there is any more bustage hiding behind these assertions that are prematurely killing five test suites.
Comment on attachment 8681407 [details] [diff] [review]
Patch

post a+
Attachment #8681407 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
marking this as fx43 fixed so it don't show up in our queries as still need to checkin
Pushed to beta44 in https://hg.mozilla.org/releases/mozilla-beta/rev/b2d75585bfc4 because of the Win8 crashtests and mochitest-other (and maybe some others I haven't spotted yet) in https://treeherder.mozilla.org/#/jobs?repo=mozilla-beta&revision=d1a4b331d80b, and a curiosity about whether the pref flip will magically fix bug 1232888 too.
Blocks: 1232888
This is as fixed as it's ever going to be. Async plugin init will be getting disabled on trunk soon as well and other various bugs are already on file for tracking known test issues with it enabled.
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.