Crash when using CEf3 inside of gstreamer

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.

Crash when using CEf3 inside of gstreamer

Postby renegart » Fri Oct 24, 2014 8:27 am

Hello,
I try to use CEF as an element from inside of Gstreamer and it crashes every time on the same position when loading a webpage.
I've tried the 'CefRunMessageLoop()' as well as the 'CefDoMessageLoopWork()' approach. It seems for me that it crashes when the first frame is ready to deliver.

I get following stack trace:
Program received signal SIGABRT, Aborted.
0x00000038b1c385a7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0 0x00000038b1c385a7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00000038b1c398e8 in __GI_abort () at abort.c:89
#2 0x00000038b1c76fc4 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x38b1d66b20 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
#3 0x00000038b1c7c8fe in malloc_printerr (action=3, str=0x38b1d62d1e "free(): invalid pointer", ptr=<optimized out>) at malloc.c:4991
#4 0x00000038b1c7d616 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3837
#5 0x00007fffee1110c3 in sk_free (p=0x164d69247020) at ../../skia/ext/SkMemory_new_handler.cpp:45
#6 0x00007fffedd230f9 in sk_free_releaseproc (ptr=0x164d69247020) at ../../third_party/skia/src/core/SkMallocPixelRef.cpp:15
#7 0x00007fffedd238a3 in SkMallocPixelRef::~SkMallocPixelRef (this=0x164d691a8560) at ../../third_party/skia/src/core/SkMallocPixelRef.cpp:183
#8 0x00007fffedd23909 in SkMallocPixelRef::~SkMallocPixelRef (this=0x164d691a8560) at ../../third_party/skia/src/core/SkMallocPixelRef.cpp:180
#9 0x00007fffed8737b7 in SkRefCntBase::internal_dispose (this=0x164d691a8560) at ../../third_party/skia/include/core/SkRefCnt.h:111
#10 0x00007fffed3e32ca in SkRefCntBase::unref (this=0x164d691a8560) at ../../third_party/skia/include/core/SkRefCnt.h:81
#11 0x00007fffedc833dd in SkBitmap::freePixels (this=0x164d68ff65b0) at ../../third_party/skia/src/core/SkBitmap.cpp:383
#12 0x00007fffedc83382 in SkBitmap::~SkBitmap (this=0x164d68ff65b0) at ../../third_party/skia/src/core/SkBitmap.cpp:45
#13 0x00007ffff077f4b9 in cc::BitmapContentLayerUpdater::~BitmapContentLayerUpdater (this=0x164d68ff6560) at ../../cc/resources/bitmap_content_layer_updater.cc:49
#14 0x00007ffff077f4e9 in cc::BitmapContentLayerUpdater::~BitmapContentLayerUpdater (this=0x164d68ff6560) at ../../cc/resources/bitmap_content_layer_updater.cc:49
#15 0x00007ffff0679e63 in base::RefCounted<cc::LayerUpdater>::Release (this=0x164d68ff6568) at ../../base/memory/ref_counted.h:137
#16 0x00007ffff06798c7 in scoped_refptr<cc::ContentLayerUpdater>::~scoped_refptr (this=0x164d68fd6d08) at ../../base/memory/ref_counted.h:295
#17 0x00007ffff0678d93 in cc::ContentLayer::~ContentLayer (this=0x164d68fd6920) at ../../cc/layers/content_layer.cc:44
#18 0x00007ffff0678df9 in cc::ContentLayer::~ContentLayer (this=0x164d68fd6920) at ../../cc/layers/content_layer.cc:44
#19 0x00007fffed629363 in base::RefCounted<cc::Layer>::Release (this=0x164d68fd6928) at ../../base/memory/ref_counted.h:137
#20 0x00007ffff06ab52a in scoped_refptr<cc::Layer>::operator= (this=0x164d690d2c60, p=0x0) at ../../base/memory/ref_counted.h:323
#21 0x00007ffff1ec2b3f in ui::Layer::SwitchToLayer (this=0x164d690d2b20, new_layer=...) at ../../ui/compositor/layer.cc:496
#22 0x00007ffff1ec3883 in ui::Layer::SetShowDelegatedContent (this=0x164d690d2b20, frame_provider=0x164d691c2de0, frame_size_in_dip=...) at ../../ui/compositor/layer.cc:562
#23 0x00007ffff2e0d536 in content::DelegatedFrameHost::SwapDelegatedFrame (this=0x164d69097c20, output_surface_id=0, frame_data=..., frame_device_scale_factor=1, latency_info=std::__debug::vector of length 0, capacity 0)
at ../../content/browser/compositor/delegated_frame_host.cc:424
#24 0x00007fffed232e3b in CefRenderWidgetHostViewOSR::OnSwapCompositorFrame (this=0x164d68f8f720, output_surface_id=0, frame=...) at ../../cef/libcef/browser/render_widget_host_view_osr.cc:309
#25 0x00007ffff2b7bc43 in content::RenderWidgetHostImpl::OnSwapCompositorFrame (this=0x164d69047528, message=...) at ../../content/browser/renderer_host/render_widget_host_impl.cc:1504
#26 0x00007ffff2b7aa47 in content::RenderWidgetHostImpl::OnMessageReceived (this=0x164d69047528, msg=...) at ../../content/browser/renderer_host/render_widget_host_impl.cc:451
#27 0x00007ffff2b68749 in content::RenderViewHostImpl::OnMessageReceived (this=0x164d69047520, msg=...) at ../../content/browser/renderer_host/render_view_host_impl.cc:925
#28 0x00007ffff2b69adf in non-virtual thunk to content::RenderViewHostImpl::OnMessageReceived(IPC::Message const&) () at ../../content/browser/renderer_host/render_view_host_impl.cc:930
#29 0x00007ffff2b45e3e in content::RenderProcessHostImpl::OnMessageReceived (this=0x164d69048c20, msg=...) at ../../content/browser/renderer_host/render_process_host_impl.cc:1407
#30 0x00007ffff2b4624f in non-virtual thunk to content::RenderProcessHostImpl::OnMessageReceived(IPC::Message const&) () at ../../content/browser/renderer_host/render_process_host_impl.cc:1408
#31 0x00007ffff0d04ddd in IPC::ChannelProxy::Context::OnDispatchMessage (this=0x164d6918aca0, message=...) at ../../ipc/ipc_channel_proxy.cc:274
#32 0x00007ffff0d0c9aa in base::internal::RunnableAdapter<void (IPC::ChannelProxy::Context::*)(IPC::Message const&)>::Run (this=0x7fffffffc470, object=0x164d6918aca0, a1=...) at ../../base/bind_internal.h:190
#33 0x00007ffff0d0c901 in base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (IPC::ChannelProxy::Context::*)(IPC::Message const&)>, void (IPC::ChannelProxy::Context* const&, IPC::Message const&)>::MakeItSo(base::internal::RunnableAdapter<void (IPC::ChannelProxy::Context::*)(IPC::Message const&)>, IPC::ChannelProxy::Context* const&, IPC::Message const&) (runnable=..., a1=@0x164d69214d00: 0x164d6918aca0, a2=...)
at ../../base/bind_internal.h:898
#34 0x00007ffff0d0c89c in base::internal::Invoker<2, base::internal::BindState<base::internal::RunnableAdapter<void (IPC::ChannelProxy::Context::*)(IPC::Message const&)>, void (IPC::ChannelProxy::Context*, IPC::Message const&), void (IPC::ChannelProxy::Context*, IPC::Message)>, void (IPC::ChannelProxy::Context*, IPC::Message const&)>::Run(base::internal::BindStateBase*) (base=0x164d69214ce0) at ../../base/bind_internal.h:1248
#35 0x00007fffed202b0e in base::Callback<void ()>::Run() const (this=0x7fffffffca88) at ../../base/callback.h:401
#36 0x00007fffed44e970 in base::debug::TaskAnnotator::RunTask (this=0x164d68f91448, queue_function=0x7ffff48e7ef8 <.L.str5> "MessageLoop::PostTask", run_function=0x7ffff48e807d <.L.str13> "MessageLoop::RunTask", pending_task=...)
at ../../base/debug/task_annotator.cc:62
#37 0x00007fffed4ef427 in base::MessageLoop::RunTask (this=0x164d68f91260, pending_task=...) at ../../base/message_loop/message_loop.cc:445
#38 0x00007fffed4ef56b in base::MessageLoop::DeferOrRunPendingTask (this=0x164d68f91260, pending_task=...) at ../../base/message_loop/message_loop.cc:455
#39 0x00007fffed4ef7a5 in base::MessageLoop::DoWork (this=0x164d68f91260) at ../../base/message_loop/message_loop.cc:564
---Type <return> to continue, or q <return> to quit---
#40 0x00007fffed4138dc in base::MessagePumpGlib::HandleDispatch (this=0x164d68f9dde0) at ../../base/message_loop/message_pump_glib.cc:267
#41 0x00007fffed413fd1 in base::(anonymous namespace)::WorkSourceDispatch (source=0x83c450, unused_func=0x0, unused_data=0x0) at ../../base/message_loop/message_pump_glib.cc:109
#42 0x00000034cd44b834 in g_main_dispatch (context=0x807e60) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3064
#43 g_main_context_dispatch (context=context@entry=0x807e60) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3663
#44 0x00000034cd44ba78 in g_main_context_iterate (context=context@entry=0x807e60, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3734
#45 0x00000034cd44bb1c in g_main_context_iteration (context=0x807e60, may_block=0) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3795
#46 0x00007fffed4139e5 in base::MessagePumpGlib::Run (this=0x164d68f9dde0, delegate=0x164d68f91260) at ../../base/message_loop/message_pump_glib.cc:309
#47 0x00007fffed4eefc0 in base::MessageLoop::RunHandler (this=0x164d68f91260) at ../../base/message_loop/message_loop.cc:414
#48 0x00007fffed546cdb in base::RunLoop::Run (this=0x7fffffffcee0) at ../../base/run_loop.cc:54
#49 0x00007fffed546ec9 in base::RunLoop::RunUntilIdle (this=0x7fffffffcee0) at ../../base/run_loop.cc:62
#50 0x00007fffed1bf0f1 in CefBrowserMessageLoop::DoMessageLoopIteration (this=0x164d68f91260) at ../../cef/libcef/browser/browser_message_loop.cc:23
#51 0x00007fffed1e0ab1 in CefDoMessageLoopWork () at ../../cef/libcef/browser/context.cc:161
#52 0x00007fffed0fe939 in cef_do_message_loop_work () at ../../cef/libcef_dll/libcef_dll.cc:272
#53 0x00007ffff7925762 in CefDoMessageLoopWork () at /var/tmp/portage/dev-libs/cef-3.2171.1881.9999/work/cef_binary_3.2171.1881_linux64/libcef_dll/wrapper/libcef_dll_wrapper.cc:264
#54 0x00007ffff7903bcd in timer_proc (user_data=0x8079d0, user_data@entry=<error reading variable: value has been optimized out>) at /home/mirgu/git/gst-cef3/gst-cef3-src.cpp:47
#55 0x00000034cd44c133 in g_timeout_dispatch (source=0x807d90, callback=<optimized out>, user_data=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:4472
#56 0x00000034cd44b715 in g_main_dispatch (context=0x807e60) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3064
#57 g_main_context_dispatch (context=context@entry=0x807e60) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3663
#58 0x00000034cd44ba78 in g_main_context_iterate (context=0x807e60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3734
#59 0x00000034cd44bd3a in g_main_loop_run (loop=0x63b000) at /var/tmp/portage/dev-libs/glib-2.40.0-r1/work/glib-2.40.0/glib/gmain.c:3928
#60 0x0000003cfaa45dfa in gst_bus_poll (bus=0x7a2d80, events=GST_MESSAGE_ANY, timeout=18446744073709551615) at /var/tmp/portage/media-libs/gstreamer-1.4.3/work/gstreamer-1.4.3/gst/gstbus.c:1091
#61 0x000000000040485d in event_loop (pipeline=0x810110, blocking=1, do_progress=0, target_state=GST_STATE_PLAYING) at /var/tmp/portage/media-libs/gstreamer-1.4.3/work/gstreamer-1.4.3/tools/gst-launch.c:512
#62 0x00000000004065bc in main (argc=8, argv=0x7fffffffd958) at /var/tmp/portage/media-libs/gstreamer-1.4.3/work/gstreamer-1.4.3/tools/gst-launch.c:1090

Does any one has an idea what's going wrong? Because using the same approach in an own test application all works fine.
renegart
Newbie
 
Posts: 1
Joined: Fri Oct 24, 2014 6:50 am

Re: Crash when using CEf3 inside of gstreamer

Postby magreenblatt » Thu Nov 20, 2014 5:49 pm

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


Return to Support Forum

Who is online

Users browsing this forum: No registered users and 56 guests