Closed Bug 1098987 Opened 10 years ago Closed 10 years ago

"Assertion failure: !mLastBridge" happens when creating a nested content process

Categories

(Core :: DOM: Content Processes, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
2.2 S1 (5dec)

People

(Reporter: kershaw, Assigned: kershaw)

References

Details

(Whiteboard: [ft:conndevices])

Attachments

(1 file)

Step to reproduce:
1. Apply patch in bug 1038620 to enablde --nested option for mochitest
2. Run mochitest-plain with --e10s and --nested
3. During initialization, move the mouse cursor to the browser window
4. Got "Assertion failure: !mLastBridge"

Assertion failure: !mLastBridge
Stack trace:
#01: mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) (MessageChannel.cpp:1126, in XUL)
#02: mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message const&) (MessageChannel.cpp:1067, in XUL)
#03: mozilla::ipc::MessageChannel::Call(IPC::Message*, IPC::Message*) (MessageChannel.cpp:220, in XUL)
#04: mozilla::dom::PContentChild::CallBridgeToChildProcess(mozilla::dom::IdType<mozilla::dom::ContentParent> const&) (.PContentChild.cpp:842, in XUL)
#05: mozilla::dom::ContentParent::CreateContentBridgeParent(mozilla::dom::TabContext const&, mozilla::hal::ProcessPriority const&, mozilla::dom::IdType<mozilla::dom::TabParent> const&, mozilla::dom::IdType<mozilla::dom::TabParent>*) (ContentParent.cpp:1205, in XUL)
#06: mozilla::dom::ContentParent::CreateBrowserOrApp(mozilla::dom::TabContext const&, mozilla::dom::Element*, mozilla::dom::ContentParent*) (ContentParent.cpp:991, in XUL)
#07: nsFrameLoader::TryRemoteBrowser() (nsFrameLoader.cpp:2126, in XUL)
#08: nsFrameLoader::ShowRemoteFrame(nsIntSize const&, nsSubDocumentFrame*) (nsFrameLoader.cpp:866, in XUL)
#09: nsFrameLoader::Show(int, int, int, int, nsSubDocumentFrame*) (nsFrameLoader.cpp:767, in XUL)
[Child 11268] WARNING: '!compMgr', file /Users/changkershaw/work/mozilla_central/xpcom/glue/nsComponentManagerUtils.cpp, line 63
[Child 11268] WARNING: NS_ENSURE_TRUE(svc) failed: file /Users/changkershaw/work/mozilla_central/dom/ipc/nsIContentChild.cpp, line 32
[Child 11268] WARNING: Error constructing actor PJavaScriptChild: file ./PContentChild.cpp, line 941
#10: nsSubDocumentFrame::ShowViewer() (nsIFrame.h:3223, in XUL)
#11: AsyncFrameInit::Run() (nsSubDocumentFrame.cpp:83, in XUL)
#12: nsContentUtils::RemoveScriptBlocker() (nsCOMPtr.h:501, in XUL)
#13: PresShell::FlushPendingNotifications(mozilla::ChangesToFlush) (nsPresShell.cpp:4310, in XUL)
#14: mozilla::EventStateManager::PreHandleEvent(nsPresContext*, mozilla::WidgetEvent*, nsIFrame*, nsEventStatus*) (EventStateManager.cpp:4870, in XUL)
#15: PresShell::HandleEventInternal(mozilla::WidgetEvent*, nsEventStatus*) (nsPresShell.cpp:8165, in XUL)
#16: PresShell::HandlePositionedEvent(nsIFrame*, mozilla::WidgetGUIEvent*, nsEventStatus*) (nsPresShell.cpp:7914, in XUL)
#17: PresShell::HandleEvent(nsIFrame*, mozilla::WidgetGUIEvent*, bool, nsEventStatus*) (nsPresShell.cpp:7714, in XUL)
#18: nsViewManager::DispatchEvent(mozilla::WidgetGUIEvent*, nsView*, nsEventStatus*) (nsCOMPtr.h:520, in XUL)
#19: nsView::HandleEvent(mozilla::WidgetGUIEvent*, bool) (nsRefPtr.h:55, in XUL)
#20: mozilla::widget::PuppetWidget::DispatchEvent(mozilla::WidgetGUIEvent*, nsEventStatus&) (PuppetWidget.cpp:308, in XUL)
#21: mozilla::dom::TabChildBase::DispatchWidgetEvent(mozilla::WidgetGUIEvent&) (TabChild.cpp:623, in XUL)
#22: mozilla::dom::TabChild::RecvRealMouseEvent(mozilla::WidgetMouseEvent const&) (MouseEvents.h:238, in XUL)
#23: non-virtual thunk to mozilla::dom::TabChild::RecvRealMouseEvent(mozilla::WidgetMouseEvent const&) (TabChild.cpp:2174, in XUL)
#24: mozilla::dom::PBrowserChild::OnMessageReceived(IPC::Message const&) (.PBrowserChild.cpp:2468, in XUL)
#25: mozilla::dom::PContentChild::OnMessageReceived(IPC::Message const&) (.PContentChild.cpp:4692, in XUL)
#26: mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) (MessageChannel.cpp:1126, in XUL)
[Child 11268] WARNING: '!compMgr', file /Users/changkershaw/work/mozilla_central/xpcom/glue/nsComponentManagerUtils.cpp, line 63
[Child 11268] WARNING: '!compMgr', file /Users/changkershaw/work/mozilla_central/xpcom/glue/nsComponentManagerUtils.cpp, line 63
#27: mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message const&) (MessageChannel.cpp:1067, in XUL)
#28: mozilla::ipc::MessageChannel::Call(IPC::Message*, IPC::Message*) (MessageChannel.cpp:220, in XUL)
#29: mozilla::dom::PContentChild::CallBridgeToChildProcess(mozilla::dom::IdType<mozilla::dom::ContentParent> const&) (.PContentChild.cpp:842, in XUL)
#30: mozilla::dom::ContentParent::CreateContentBridgeParent(mozilla::dom::TabContext const&, mozilla::hal::ProcessPriority const&, mozilla::dom::IdType<mozilla::dom::TabParent> const&, mozilla::dom::IdType<mozilla::dom::TabParent>*) (ContentParent.cpp:1205, in XUL)
#31: mozilla::dom::ContentParent::CreateBrowserOrApp(mozilla::dom::TabContext const&, mozilla::dom::Element*, mozilla::dom::ContentParent*) (ContentParent.cpp:991, in XUL)
#32: nsFrameLoader::TryRemoteBrowser() (nsFrameLoader.cpp:2126, in XUL)
#33: nsFrameLoader::ReallyStartLoadingInternal() (nsFrameLoader.cpp:365, in XUL)
#34: nsDocument::MaybeInitializeFinalizeFrameLoaders() (nsFrameLoader.cpp:301, in XUL)
#35: nsDocument::EndUpdate(unsigned int) (nsDocument.cpp:4805, in XUL)
#36: nsHTMLDocument::EndUpdate(unsigned int) (nsHTMLDocument.cpp:2491, in XUL)
#37: nsINode::ReplaceOrInsertBefore(bool, nsINode*, nsINode*, mozilla::ErrorResult&) (mozAutoDocUpdate.h:38, in XUL)
#38: mozilla::dom::NodeBinding::appendChild(JSContext*, JS::Handle<JSObject*>, nsINode*, JSJitMethodCallArgs const&) (nsINode.h:1600, in XUL)
Hi Kan-Ru,

Would you like to take a look first?

Thanks.
Attachment #8523713 - Flags: feedback?(kchen)
Assignee: nobody → kechang
Attachment #8523713 - Flags: feedback?(kchen) → feedback+
Blocks: nested-oop
Attachment #8523713 - Flags: review?(khuey)
Hi Kyle,

Could you look at this patch?
This is about avoiding dispatching event when a content process is creating a grandchild process.

Thanks.
Whiteboard: [ft:conndevices]
Target Milestone: --- → 2.2 S1 (5dec)
I'm not convinced that ignoring events is the correct behavior here.  We should talk about this this week.
Sure. Could you let me know when you will be available?
Let's arrange a small talk about this.

Thanks.
Comment on attachment 8523713 [details] [diff] [review]
Avoid dispatching event when creating a nested content process - v1

We discussed this in person.  This is a less general version of a patch billm is working on, and we're going to take it instead.
Attachment #8523713 - Flags: review?(khuey)
Depends on: 1109883
I can confirm this is fixed with the landing of bug 1109883.

Thanks Kyle and billm.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: