Rogue renderer process not killed

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

Rogue renderer process not killed

Postby Satrajit » Wed Dec 06, 2023 4:54 am

cefclient in general uses 5 processes. In an exploration to reduce the process count and memory footprint.
added

Code: Select all
command_line->AppendSwitch("in-process-gpu");
command_line->AppendSwitchWithValue("enable-features", "NetworkServiceInProcess2");


With this change the process count is reduced to 3. Everything works fine but one observation is that if cefclient broweser process is killed from task manager only a rogue renderer process gets left behind that uses some memory.
Not the case with proper close of the cefclient application.

Any help on how to tackle this renderer process?
Satrajit
Mentor
 
Posts: 87
Joined: Wed Jan 09, 2019 6:11 am

Re: Rogue renderer process not killed

Postby KatrinaS » Wed Dec 06, 2023 9:44 am

These orphaned (helper) processes have been going on for some time for me (since around 116-117) regardless of orderly shutdown or not,, now I just terminate them with prejudice :lol: on CEF shutdown as they use like 15% CPU a pop causing significant fan spin. Using these switches you mention made no difference to their overall count, and commenting out the termination code left me with the same old 2 or 3 orphans (so obvs that was uncommented back in). I don't know what they even do (but I don't doubt their criticality) and I only use one Browser instance :)
KatrinaS
Mentor
 
Posts: 83
Joined: Tue Jul 04, 2023 6:30 pm

Re: Rogue renderer process not killed

Postby Satrajit » Wed Dec 06, 2023 11:45 am

These switching help in combining the gpu and utility processes into one process.
Thus for cefclient it becomes 1 browser, 1 renderer, 1 combined process.

But, this leads to the said behavior during force close intermittently.
Satrajit
Mentor
 
Posts: 87
Joined: Wed Jan 09, 2019 6:11 am

Re: Rogue renderer process not killed

Postby magreenblatt » Wed Dec 06, 2023 11:51 am

magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Rogue renderer process not killed

Postby Satrajit » Mon Dec 11, 2023 12:17 pm

Hi magreenblatt,

Its the other way round. On killing the browser process there is a lingering renderer process.

I am also not able to catch any WM_CLOSE, WM_DESTROY messages and any callbacks called on close even.
Satrajit
Mentor
 
Posts: 87
Joined: Wed Jan 09, 2019 6:11 am

Re: Rogue renderer process not killed

Postby magreenblatt » Mon Dec 11, 2023 12:32 pm

On killing the browser process there is a lingering renderer process.

This is the case for which the above-linked workaround is proposed.
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Rogue renderer process not killed

Postby ndesktop » Mon Dec 11, 2023 4:08 pm

Satrajit wrote:Hi magreenblatt,

Its the other way round. On killing the browser process there is a lingering renderer process.

I am also not able to catch any WM_CLOSE, WM_DESTROY messages and any callbacks called on close even.

A lingering renderer process most likely do not process WM_CLOSE (although not impossible). This is in the browser process.
ndesktop
Master
 
Posts: 756
Joined: Thu Dec 03, 2015 10:10 am

Re: Rogue renderer process not killed

Postby Satrajit » Tue Dec 12, 2023 8:06 am

I see the renderer process exits before.

Code: Select all
app->ContextShutdown();
CefShutdown();


Exactly at what point does the renderer process exits?

We do the browser cleanup during the OnBeforeClose()
Satrajit
Mentor
 
Posts: 87
Joined: Wed Jan 09, 2019 6:11 am

Re: Rogue renderer process not killed

Postby Satrajit » Tue Dec 12, 2023 10:35 am

Pasting the callstack for reference

Code: Select all
>   libcef.dll!base::WaitableEvent::Wait() Line 74   C++
    libcef.dll!content::RendererBlinkPlatformImpl::GetIOThreadId() Line 1173   C++
    libcef.dll!blink::WidgetBase::RequestNewLayerTreeFrameSink(base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)> callback) Line 578   C++
    libcef.dll!blink::LayerTreeView::RequestNewLayerTreeFrameSink() Line 254   C++
    [Inline Frame] libcef.dll!base::OnceCallback<void ()>::Run() Line 143   C++
    libcef.dll!base::TaskAnnotator::RunTaskImpl(base::PendingTask & pending_task) Line 135   C++
    [Inline Frame] libcef.dll!base::TaskAnnotator::RunTask(perfetto::StaticString event_name, base::PendingTask & pending_task, base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl::<lambda_0> && args) Line 74   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow * continuation_lazy_now) Line 385   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 296   C++
    libcef.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 41   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool application_tasks_allowed, base::TimeDelta timeout) Line 500   C++
    libcef.dll!base::RunLoop::Run(const base::Location & location) Line 143   C++
    libcef.dll!content::RendererMain(content::MainFunctionParams parameters) Line 298   C++
    libcef.dll!content::RunOtherNamedProcessTypeMain(const std::__1::basic_string<char,std::__1::char_traits<char>,std::__1::allocator<char>> & process_type, content::MainFunctionParams main_function_params, content::ContentMainDelegate * delegate) Line 701   C++
    libcef.dll!content::ContentMainRunnerImpl::Run() Line 1040   C++
    libcef.dll!content::ContentMainRun(content::ContentMainRunner * content_main_runner) Line 403   C++
    libcef.dll!content::RunContentProcess(content::ContentMainParams params, content::ContentMainRunner * content_main_runner) Line 445   C++
    libcef.dll!content::ContentMain(content::ContentMainParams params) Line 460   C++
    libcef.dll!CefMainRunner::RunAsHelperProcess(const CefMainArgs & args, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 355   C++
    libcef.dll!CefExecuteProcess(const CefMainArgs & args, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 187   C++
    libcef.dll!cef_execute_process(const _cef_main_args_t * args, _cef_app_t * application, void * windows_sandbox_info) Line 80   C++
    [External Code]   


Code: Select all
>   [Inline Frame] libcef.dll!base::AtomicFlag::IsSet() Line 37   C++
    [Inline Frame] libcef.dll!base::internal::WeakReference::Flag::MaybeValid() Line 44   C++
    libcef.dll!base::internal::WeakReference::MaybeValid() Line 66   C++
    [Inline Frame] libcef.dll!base::WeakPtr<blink::LayerTreeView>::get() Line 260   C++
    [Inline Frame] libcef.dll!base::WeakPtr<blink::LayerTreeView>::operator bool() Line 273   C++
    [Inline Frame] libcef.dll!base::internal::InvokeHelper<1,void>::MakeItSo(void(blink::LayerTreeView::*)(std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>) && functor, base::WeakPtr<blink::LayerTreeView> && weak_ptr, std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>> && args, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>> && args) Line 722   C++
    [Inline Frame] libcef.dll!base::internal::Invoker<base::internal::BindState<void (blink::LayerTreeView::*)(std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>),base::WeakPtr<blink::LayerTreeView>>,void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>::RunImpl(void(blink::LayerTreeView::*)(std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>) && functor, std::__1::tuple<base::WeakPtr<blink::LayerTreeView>> && bound, std::__1::integer_sequence<unsigned long long,0>, std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>> && unbound_args, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>> && unbound_args) Line 778   C++
    libcef.dll!base::internal::Invoker<base::internal::BindState<void (blink::LayerTreeView::*)(std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>),base::WeakPtr<blink::LayerTreeView>>,void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>::RunOnce(base::internal::BindStateBase * base, std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>> && unbound_args, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>> && unbound_args) Line 747   C++
    [Inline Frame] libcef.dll!base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>::Run(std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>> args, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>> args) Line 143   C++
    libcef.dll!blink::WidgetBase::FinishRequestNewLayerTreeFrameSink(const blink::KURL & url, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink> compositor_frame_sink_receiver, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient> compositor_frame_sink_client, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient> render_frame_metadata_observer_client_receiver, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver> render_frame_metadata_observer_remote, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>> render_frame_metadata_observer, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>> params, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)> callback, scoped_refptr<gpu::GpuChannelHost> gpu_channel_host) Line 666   C++
    libcef.dll!base::internal::FunctorTraits<void (blink::WidgetBase::*)(const blink::KURL &, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>, scoped_refptr<gpu::GpuChannelHost>),void>::Invoke<void (blink::WidgetBase::*)(const blink::KURL &, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>, scoped_refptr<gpu::GpuChannelHost>),base::WeakPtr<blink::WidgetBase>,blink::KURL,mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>,mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>,mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>,mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>,std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>,std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>,base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>,scoped_refptr<gpu::GpuChannelHost>>(void(blink::WidgetBase::*)(const blink::KURL &, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>, scoped_refptr<gpu::GpuChannelHost>) method, base::WeakPtr<blink::WidgetBase> && receiver_ptr, blink::KURL && args, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink> && args, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient> && args, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient> && args, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver> && args, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>> && args, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>> && args, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)> && args, scoped_refptr<gpu::GpuChannelHost> && args) Line 541   C++
    [Inline Frame] libcef.dll!base::internal::InvokeHelper<1,void>::MakeItSo(void(blink::WidgetBase::*)(const blink::KURL &, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>, scoped_refptr<gpu::GpuChannelHost>) && functor, base::WeakPtr<blink::WidgetBase> && weak_ptr, blink::KURL && args, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink> && args, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient> && args, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient> && args, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver> && args, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>> && args, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>> && args, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)> && args, scoped_refptr<gpu::GpuChannelHost> && args) Line 725   C++
    [Inline Frame] libcef.dll!base::internal::Invoker<base::internal::BindState<void (blink::WidgetBase::*)(const blink::KURL &, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>, scoped_refptr<gpu::GpuChannelHost>),base::WeakPtr<blink::WidgetBase>,blink::KURL,mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>,mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>,mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>,mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>,std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>,std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>,base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>>,void (scoped_refptr<gpu::GpuChannelHost>)>::RunImpl(void(blink::WidgetBase::*)(const blink::KURL &, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>, scoped_refptr<gpu::GpuChannelHost>) && functor, std::__1::tuple<base::WeakPtr<blink::WidgetBase>,blink::KURL,mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>,mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>,mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>,mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>,std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>,std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>,base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>> && bound, std::__1::integer_sequence<unsigned long long,0,1,2,3,4,5,6,7,8>, scoped_refptr<gpu::GpuChannelHost> && unbound_args) Line 778   C++
    libcef.dll!base::internal::Invoker<base::internal::BindState<void (blink::WidgetBase::*)(const blink::KURL &, mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>, mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>, mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>, mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>, std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>, std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>, base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>, scoped_refptr<gpu::GpuChannelHost>),base::WeakPtr<blink::WidgetBase>,blink::KURL,mojo::PendingReceiver<viz::mojom::blink::CompositorFrameSink>,mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>,mojo::PendingReceiver<cc::mojom::blink::RenderFrameMetadataObserverClient>,mojo::PendingRemote<cc::mojom::blink::RenderFrameMetadataObserver>,std::__1::unique_ptr<blink::RenderFrameMetadataObserverImpl,std::__1::default_delete<blink::RenderFrameMetadataObserverImpl>>,std::__1::unique_ptr<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams,std::__1::default_delete<cc::mojo_embedder::AsyncLayerTreeFrameSink::InitParams>>,base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)>>,void (scoped_refptr<gpu::GpuChannelHost>)>::RunOnce(base::internal::BindStateBase * base, scoped_refptr<gpu::GpuChannelHost> && unbound_args) Line 751   C++
    [Inline Frame] libcef.dll!base::OnceCallback<void (scoped_refptr<gpu::GpuChannelHost>)>::Run(scoped_refptr<gpu::GpuChannelHost> args) Line 143   C++
    libcef.dll!blink::WidgetBase::RequestNewLayerTreeFrameSink(base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)> callback) Line 643   C++
    libcef.dll!blink::LayerTreeView::RequestNewLayerTreeFrameSink() Line 254   C++
    [Inline Frame] libcef.dll!base::OnceCallback<void ()>::Run() Line 143   C++
    libcef.dll!base::TaskAnnotator::RunTaskImpl(base::PendingTask & pending_task) Line 135   C++
    [Inline Frame] libcef.dll!base::TaskAnnotator::RunTask(perfetto::StaticString event_name, base::PendingTask & pending_task, base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl::<lambda_0> && args) Line 74   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow * continuation_lazy_now) Line 385   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 296   C++
    libcef.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 41   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool application_tasks_allowed, base::TimeDelta timeout) Line 500   C++
    libcef.dll!base::RunLoop::Run(const base::Location & location) Line 143   C++
    libcef.dll!content::RendererMain(content::MainFunctionParams parameters) Line 298   C++
    libcef.dll!content::RunOtherNamedProcessTypeMain(const std::__1::basic_string<char,std::__1::char_traits<char>,std::__1::allocator<char>> & process_type, content::MainFunctionParams main_function_params, content::ContentMainDelegate * delegate) Line 701   C++
    libcef.dll!content::ContentMainRunnerImpl::Run() Line 1040   C++
    libcef.dll!content::ContentMainRun(content::ContentMainRunner * content_main_runner) Line 403   C++
    libcef.dll!content::RunContentProcess(content::ContentMainParams params, content::ContentMainRunner * content_main_runner) Line 445   C++
    libcef.dll!content::ContentMain(content::ContentMainParams params) Line 460   C++
    libcef.dll!CefMainRunner::RunAsHelperProcess(const CefMainArgs & args, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 355   C++
    libcef.dll!CefExecuteProcess(const CefMainArgs & args, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 187   C++
    libcef.dll!cef_execute_process(const _cef_main_args_t * args, _cef_app_t * application, void * windows_sandbox_info) Line 80   C++
    [External Code]   


Code: Select all
[Inline Frame] libcef.dll!mojo::core::HandleTable::Entry::Entry(const mojo::core::HandleTable::Entry & other) Line 205   C++
    [Inline Frame] libcef.dll!std::__1::pair<unsigned long long,mojo::core::HandleTable::Entry>::pair(unsigned __int64 & __u1, mojo::core::HandleTable::Entry && __u2) Line 544   C++
    [Inline Frame] libcef.dll!std::__1::make_pair(unsigned __int64 & __t1, mojo::core::HandleTable::Entry && __t2) Line 763   C++
    libcef.dll!mojo::core::HandleTable::AddDispatcher(scoped_refptr<mojo::core::Dispatcher> dispatcher) Line 57   C++
    [Inline Frame] libcef.dll!mojo::core::Core::AddDispatcher(scoped_refptr<mojo::core::Dispatcher> dispatcher) Line 193   C++
    libcef.dll!mojo::core::Core::CreateMessagePipe(const MojoCreateMessagePipeOptions * options, unsigned __int64 * message_pipe_handle0, unsigned __int64 * message_pipe_handle1) Line 509   C++
    [Inline Frame] libcef.dll!mojo::CreateMessagePipe(const MojoCreateMessagePipeOptions * options, mojo::ScopedHandleBase<mojo::MessagePipeHandle> * message_pipe0, mojo::ScopedHandleBase<mojo::MessagePipeHandle> * message_pipe1) Line 54   C++
    [Inline Frame] libcef.dll!mojo::MessagePipe::MessagePipe() Line 139   C++
    [Inline Frame] libcef.dll!mojo::PendingRemote<viz::mojom::blink::CompositorFrameSinkClient>::InitWithNewPipeAndPassReceiver() Line 171   C++
    libcef.dll!blink::WidgetBase::RequestNewLayerTreeFrameSink(base::OnceCallback<void (std::__1::unique_ptr<cc::LayerTreeFrameSink,std::__1::default_delete<cc::LayerTreeFrameSink>>, std::__1::unique_ptr<cc::RenderFrameMetadataObserver,std::__1::default_delete<cc::RenderFrameMetadataObserver>>)> callback) Line 608   C++
    libcef.dll!blink::LayerTreeView::RequestNewLayerTreeFrameSink() Line 254   C++
    [Inline Frame] libcef.dll!base::OnceCallback<void ()>::Run() Line 143   C++
    libcef.dll!base::TaskAnnotator::RunTaskImpl(base::PendingTask & pending_task) Line 135   C++
    [Inline Frame] libcef.dll!base::TaskAnnotator::RunTask(perfetto::StaticString event_name, base::PendingTask & pending_task, base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl::<lambda_0> && args) Line 74   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow * continuation_lazy_now) Line 385   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 296   C++
    libcef.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 41   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool application_tasks_allowed, base::TimeDelta timeout) Line 500   C++
    libcef.dll!base::RunLoop::Run(const base::Location & location) Line 143   C++
    libcef.dll!content::RendererMain(content::MainFunctionParams parameters) Line 298   C++
    libcef.dll!content::RunOtherNamedProcessTypeMain(const std::__1::basic_string<char,std::__1::char_traits<char>,std::__1::allocator<char>> & process_type, content::MainFunctionParams main_function_params, content::ContentMainDelegate * delegate) Line 701   C++
    libcef.dll!content::ContentMainRunnerImpl::Run() Line 1040   C++
    libcef.dll!content::ContentMainRun(content::ContentMainRunner * content_main_runner) Line 403   C++
    libcef.dll!content::RunContentProcess(content::ContentMainParams params, content::ContentMainRunner * content_main_runner) Line 445   C++
    libcef.dll!content::ContentMain(content::ContentMainParams params) Line 460   C++
    libcef.dll!CefMainRunner::RunAsHelperProcess(const CefMainArgs & args, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 355   C++
    libcef.dll!CefExecuteProcess(const CefMainArgs & args, scoped_refptr<CefApp> application, void * windows_sandbox_info) Line 187   C++
    libcef.dll!cef_execute_process(const _cef_main_args_t * args, _cef_app_t * application, void * windows_sandbox_info) Line 80   C++
    [External Code]   
Satrajit
Mentor
 
Posts: 87
Joined: Wed Jan 09, 2019 6:11 am

Re: Rogue renderer process not killed

Postby Satrajit » Wed Dec 13, 2023 5:06 am

Facing this exact similar issue with cefcleint
https://bugs.chromium.org/p/chromium/is ... l?id=62624
Satrajit
Mentor
 
Posts: 87
Joined: Wed Jan 09, 2019 6:11 am

Next

Return to Support Forum

Who is online

Users browsing this forum: No registered users and 194 guests