In my application I'm using offscreen rendering as well as the external message pump. Currently using CEF 3396.1779.
This crash happens on Windows when I'm closing things down and I call CefBrowserHost::CloseBrowser(true). So far I can reproduce regularly but only when I make two browser instances but the second is never actually made visible (but not understanding the crash it's hard to really know what the sufficient conditions are). I'm hoping that someone with a higher-level understanding of CEF might be able to guess why the "endpoint" in the below callstack could be nullptr?
Thanks for any ideas!
Rob
Debugger output window shows:
Exception thrown: read access violation.
**endpoint** was nullptr.
Callstack below:
- Code: Select all
libcef.dll!IPC::`anonymous namespace'::ChannelAssociatedGroupController::DetachEndpointClient(const mojo::ScopedInterfaceEndpointHandle & handle) Line 315 C++
libcef.dll!mojo::InterfaceEndpointClient::~InterfaceEndpointClient() Line 173 C++
libcef.dll!mojo::InterfaceEndpointClient::~InterfaceEndpointClient() Line 169 C++
[Inline Frame] libcef.dll!std::default_delete<mojo::InterfaceEndpointClient>::operator()(mojo::InterfaceEndpointClient * _Ptr) Line 2127 C++
[Inline Frame] libcef.dll!std::unique_ptr<mojo::InterfaceEndpointClient,std::default_delete<mojo::InterfaceEndpointClient> >::reset(mojo::InterfaceEndpointClient * _Ptr) Line 2376 C++
libcef.dll!mojo::AssociatedBinding<content::mojom::RendererHost,mojo::RawPtrImplRefTraits<content::mojom::RendererHost> >::Unbind() Line 135 C++
libcef.dll!content::RenderProcessHostImpl::ResetIPC() Line 3939 C++
libcef.dll!content::RenderProcessHostImpl::Cleanup() Line 3257 C++
libcef.dll!content::RenderWidgetHostImpl::Destroy(bool also_delete) Line 1962 C++
libcef.dll!content::RenderViewHostImpl::ShutdownAndDestroy() Line 799 C++
libcef.dll!content::FrameTree::ReleaseRenderViewHostRef(content::RenderViewHostImpl * render_view_host) Line 406 C++
libcef.dll!content::RenderFrameHostImpl::~RenderFrameHostImpl() Line 680 C++
libcef.dll!content::RenderFrameHostImpl::~RenderFrameHostImpl() Line 623 C++
[Inline Frame] libcef.dll!std::default_delete<content::RenderFrameHostImpl>::operator()(content::RenderFrameHostImpl * _Ptr) Line 2127 C++
[Inline Frame] libcef.dll!std::unique_ptr<content::RenderFrameHostImpl,std::default_delete<content::RenderFrameHostImpl> >::~unique_ptr() Line 2339 C++
libcef.dll!content::RenderFrameHostManager::~RenderFrameHostManager() Line 87 C++
libcef.dll!content::FrameTreeNode::~FrameTreeNode() Line 213 C++
libcef.dll!content::FrameTree::~FrameTree() Line 119 C++
libcef.dll!content::WebContentsImpl::~WebContentsImpl() Line 639 C++
libcef.dll!content::WebContentsImpl::~WebContentsImpl() Line 545 C++
[Inline Frame] libcef.dll!std::default_delete<content::WebContents>::operator()(content::WebContents * _Ptr) Line 2127 C++
[Inline Frame] libcef.dll!std::unique_ptr<content::WebContents,std::default_delete<content::WebContents> >::reset(content::WebContents * _Ptr) Line 2376 C++
libcef.dll!CefBrowserHostImpl::DestroyBrowser() Line 1551 C++
libcef.dll!CefBrowserHostImpl::CloseContents(content::WebContents * source) Line 2272 C++
libcef.dll!`anonymous namespace'::browser_host_close_browser(_cef_browser_host_t * self, int force_close) Line 130 C++
> CefBrowserHostCToCpp::CloseBrowser(bool force_close) Line 93 C++