Skia Crash when running in VirtualBox

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.

Skia Crash when running in VirtualBox

Postby hunterlaux » Mon Nov 06, 2023 8:03 pm

My app crashes when I run it on Windows inside of VirtualBox VM. I haven't seen this crash like this on native Desktops.
I'm using 117.2.3. Any Ideas?
Code: Select all
>   libcef.dll!viz::SkiaOutputSurfaceImpl::RecreateRootDDLRecorder() Line 375   C++
    libcef.dll!viz::SkiaOutputSurfaceImpl::Reshape(const viz::OutputSurface::ReshapeParams & params) Line 427   C++
    libcef.dll!viz::DirectRenderer::DrawFrame(std::__Cr::vector<std::__Cr::unique_ptr<viz::AggregatedRenderPass,std::__Cr::default_delete<viz::AggregatedRenderPass>>,std::__Cr::allocator<std::__Cr::unique_ptr<viz::AggregatedRenderPass,std::__Cr::default_delete<viz::AggregatedRenderPass>>>> * render_passes_in_draw_order, float device_scale_factor, const gfx::Size & device_viewport_size, const gfx::DisplayColorSpaces & display_color_spaces, std::__Cr::vector<gfx::Rect,std::__Cr::allocator<gfx::Rect>> surface_damage_rect_list) Line 376   C++
    libcef.dll!viz::Display::DrawAndSwap(const viz::DrawAndSwapParams & params) Line 922   C++
    libcef.dll!viz::DisplayScheduler::DrawAndSwap() Line 225   C++
    libcef.dll!viz::DisplayScheduler::OnBeginFrameDeadline() Line 540   C++
    [Inline Frame] libcef.dll!base::OnceCallback<void ()>::Run() Line 152   C++
    [Inline Frame] libcef.dll!base::DeadlineTimer::OnScheduledTaskInvoked() Line 305   C++
    [Inline Frame] libcef.dll!base::internal::FunctorTraits<void (base::DeadlineTimer::*)(),void>::Invoke(void(base::DeadlineTimer::*)() method, base::DeadlineTimer * && receiver_ptr) Line 714   C++
    [Inline Frame] libcef.dll!base::internal::InvokeHelper<0,void,0>::MakeItSo(void(base::DeadlineTimer::*)() & functor, const std::__Cr::tuple<base::internal::UnretainedWrapper<base::DeadlineTimer,base::unretained_traits::MayNotDangle,0>> & bound) Line 893   C++
    [Inline Frame] libcef.dll!base::internal::Invoker<base::internal::BindState<void (base::DeadlineTimer::*)(),base::internal::UnretainedWrapper<base::DeadlineTimer,base::unretained_traits::MayNotDangle,0>>,void ()>::RunImpl(void(base::DeadlineTimer::*)() & functor, const std::__Cr::tuple<base::internal::UnretainedWrapper<base::DeadlineTimer,base::unretained_traits::MayNotDangle,0>> & bound, std::__Cr::integer_sequence<unsigned long long,0> seq) Line 993   C++
    libcef.dll!base::internal::Invoker<base::internal::BindState<void (base::DeadlineTimer::*)(),base::internal::UnretainedWrapper<base::DeadlineTimer,base::unretained_traits::MayNotDangle,0>>,void ()>::Run(base::internal::BindStateBase * base) Line 957   C++
    [Inline Frame] libcef.dll!base::OnceCallback<void ()>::Run() Line 152   C++
    libcef.dll!base::TaskAnnotator::RunTaskImpl(base::PendingTask & pending_task) Line 201   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 89   C++
    [Inline Frame] libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::LazyNow * continuation_lazy_now) Line 480   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() Line 345   C++
    libcef.dll!base::MessagePumpDefault::Run(base::MessagePump::Delegate * delegate) Line 42   C++
    libcef.dll!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool application_tasks_allowed, base::TimeDelta timeout) Line 648   C++
    libcef.dll!base::RunLoop::Run(const base::Location & location) Line 136   C++
    libcef.dll!base::Thread::Run(base::RunLoop * run_loop) Line 337   C++
    libcef.dll!base::Thread::ThreadMain() Line 412   C++
    libcef.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 126   C++
    [Frames may be missing, no binary loaded for kernel32.dll]   
    [External Code]   
hunterlaux
Techie
 
Posts: 22
Joined: Fri Nov 17, 2017 5:50 pm

Re: Skia Crash when running in VirtualBox

Postby hunterlaux » Tue Nov 07, 2023 12:33 pm

--disable-gpu is a workaround.
I'm also getting this in the log.
Code: Select all
[1107/092717.129:WARNING:policy_logger.cc(148)] :components\enterprise\browser\controller\chrome_browser_cloud_management_controller.cc(88) Could not create policy manager as CBCM is not enabled.
[1107/092731.261:ERROR:skia_output_surface_impl.cc(1252)]
  surface_size=2048x1536
  format=4
  color_type=4
  backend_format.isValid()=0
  backend_format.backend()=5
  GrBackendFormats::AsGLFormat(backend_format)=0
  backend_format.asVkFormat()=0
  backend_format.asVkFormat() vk_format=0
  sample_count=1
  surface_origin=0
  willGlFBO0=1
hunterlaux
Techie
 
Posts: 22
Joined: Fri Nov 17, 2017 5:50 pm

Re: Skia Crash when running in VirtualBox

Postby ndesktop » Tue Nov 07, 2023 1:20 pm

The action seems to be here.

Probably it is a bug on hardware acceleration driver of VBox, hence --disable-gpu being a workaround.
If the bug dissapears without --disable-gpu and with HWA disabled on VBox it probably strengthen this hypothesis.

For example:
Chrome with hardware acceleration crashes VirtualBox with memory errors. Turning off hardware acceleration in chrome resolves it.
Chromium-browser-stable broken in VirtualBox

Run the executable with logging enabled and check for GPU process log, maybe it shows specific error details.
ndesktop
Master
 
Posts: 756
Joined: Thu Dec 03, 2015 10:10 am


Return to Support Forum

Who is online

Users browsing this forum: Google [Bot] and 174 guests