centricular / gstcefsrc

A simple gstreamer wrapper around Chromium Embedded Framework
84 stars 45 forks source link

crash of the libcef runnin a gstcef pipeline on a VM #6

Closed thierrygayet closed 4 years ago

thierrygayet commented 4 years ago

Hi,

Because i wanted to upgrade the cef version i needed to add the h264 support for webrtc usage.

I have used the following version :

The build of this cef version that include the h264 support works fine.

Your gstcef module works fine with the cef version that you declare within your CMakelist.txt buy when i overrride yours by replacing your cef files by ours it work file on a computer, not on an Amazon server (Virtualized).

When i start your pipeline test, i always crash with the following trace :+1:

gst-launch-1.0 cefsrc url="https://soundcloud.com/platform/sama" ! queue ! cefdemux name=d   d.video ! video/x-raw ! queue ! videoconvert ! fakesink dump=true
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Received signal 11 SEGV_MAPERR 000000000020
#0 0x7fac4492f489 base::debug::CollectStackTrace()
#1 0x7fac448899b3 base::debug::StackTrace::StackTrace()
#2 0x7fac4492f001 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x7fac3f523890 <unknown>
#4 0x7fac3f51afa0 <unknown>
#5 0x7fac4493a3c8 base::internal::LockImpl::Lock()
#6 0x7fac447b41ba CefFrameHostImpl::RefreshAttributes()
#7 0x7fac44789941 CefBrowserHostImpl::DidFinishNavigation()
#8 0x7fac434a1000 content::WebContentsImpl::DidFinishNavigation()
#9 0x7fac431d4609 content::NavigationHandleImpl::~NavigationHandleImpl()
#10 0x7fac431d491e content::NavigationHandleImpl::~NavigationHandleImpl()
#11 0x7fac431d80dc content::NavigationRequest::~NavigationRequest()
#12 0x7fac431d856e content::NavigationRequest::~NavigationRequest()
#13 0x7fac431afb7d content::FrameTreeNode::ResetNavigationRequest()
#14 0x7fac431d8cf2 content::NavigationRequest::OnRequestFailedInternal()
#15 0x7fac431dd366 content::NavigationRequest::OnRequestFailed()
#16 0x7fac4329ffb0 content::NavigationURLLoaderImpl::OnComplete()
#17 0x7fac448dceca base::TaskAnnotator::RunTask()
#18 0x7fac448ec0be base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl()
#19 0x7fac448ebcfe base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork()
#20 0x7fac448a3fb6 base::MessagePumpGlib::Run()
#21 0x7fac448ecab9 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run()
#22 0x7fac448bf927 base::RunLoop::RunWithTimeout()
#23 0x7fac44797f40 CefDoMessageLoopWork()
#24 0x7fac3637ec82 cef_do_work_func()
#25 0x7fac3f77cd03 <unknown>
#26 0x7fac3f77c285 g_main_context_dispatch
#27 0x7fac3f77c650 <unknown>
#28 0x7fac3f77c962 g_main_loop_run
#29 0x7fac3fce09f3 gst_bus_poll
#30 0x560794d31bb3 <unknown>
#31 0x560794d30a1e <unknown>
#32 0x7fac3f141b97 __libc_start_main
#33 0x560794d310da <unknown>
 r8: 0000000000000000  r9: 00007ffdcafed101 r10: 0000000000000000 r11: 000005e96d22da80
r12: 0000000000000000 r13: 000005e96d1d5e40 r14: 00007ffdcafed098 r15: 000005e96d1a2600
 di: 0000000000000010  si: 00007fac4493a3ae  bp: 00007ffdcafed0c0  bx: 0000000000000010
 dx: 0000000000000010  ax: 00007fac4493a3ae  cx: 0000000000000001  sp: 00007ffdcafed088
 ip: 00007fac3f51afa0 efl: 0000000000010202 cgf: 002b000000000033 erf: 0000000000000004
trp: 000000000000000e msk: 0000000000000000 cr2: 0000000000000020
[end of stack trace]
Calling _exit(1). Core file will not be generated.

And the core dump say :

gdb gst-launch-1.0 /data/cores/core.gst-launch-1.0.23910
bt

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `gst-launch-1.0 cefsrc url=https://soundcloud.com/platform/sama ! queue ! cefdem'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __GI___pthread_mutex_lock (mutex=0x10) at ../nptl/pthread_mutex_lock.c:65
65      ../nptl/pthread_mutex_lock.c: No such file or directory.
[Current thread is 1 (Thread 0x7fbe8e0fd740 (LWP 23910))]
(gdb) bt
#0  0x00007fbe8d448fa0 in __GI___pthread_mutex_lock (mutex=0x10) at ../nptl/pthread_mutex_lock.c:65
#1  0x00007fbe874aa188 in base::internal::LockImpl::Lock() () at ./libcef.so
#2  0x00007fbe8732413a in CefFrameHostImpl::RefreshAttributes() () at ./libcef.so
#3  0x00007fbe872f98c1 in CefBrowserHostImpl::DidFinishNavigation(content::NavigationHandle*) () at ./libcef.so
#4  0x00007fbe86010dd0 in content::WebContentsImpl::DidFinishNavigation(content::NavigationHandle*) () at ./libcef.so
#5  0x00007fbe85d443d9 in content::NavigationHandleImpl::~NavigationHandleImpl() () at ./libcef.so
#6  0x00007fbe85d446ee in content::NavigationHandleImpl::~NavigationHandleImpl() () at ./libcef.so
#7  0x00007fbe85d47eac in content::NavigationRequest::~NavigationRequest() () at ./libcef.so
#8  0x00007fbe85d4833e in content::NavigationRequest::~NavigationRequest() () at ./libcef.so
#9  0x00007fbe85d1f94d in content::FrameTreeNode::ResetNavigationRequest(bool, bool) () at ./libcef.so
#10 0x00007fbe85d48ac2 in content::NavigationRequest::OnRequestFailedInternal(network::URLLoaderCompletionStatus const&, bool, base::Optional<std::__1::basic_string<char, std::__1::char_traits<char>, std:
:__1::allocator<char> > > const&, bool) () at ./libcef.so
#11 0x00007fbe85d4d136 in content::NavigationRequest::OnRequestFailed(network::URLLoaderCompletionStatus const&) () at ./libcef.so
#12 0x00007fbe85e0fd80 in content::NavigationURLLoaderImpl::OnComplete(network::URLLoaderCompletionStatus const&) () at ./libcef.so
#13 0x00007fbe8744cd8a in base::TaskAnnotator::RunTask(char const*, base::PendingTask*) () at ./libcef.so
#14 0x00007fbe8745bf7e in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*, bool*) () at ./libcef.so
#15 0x00007fbe8745bbbe in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoSomeWork() () at ./libcef.so
#16 0x00007fbe8741cd37 in base::(anonymous namespace)::WorkSourceDispatch(_GSource*, int (*)(void*), void*) () at ./libcef.so
#17 0x00007fbe8d6aa417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007fbe8d6aa650 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007fbe8d6aa6dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007fbe87413e5e in base::MessagePumpGlib::Run(base::MessagePump::Delegate*) () at ./libcef.so
#21 0x00007fbe8745c979 in non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) () at ./libcef.so
#22 0x00007fbe8742f7e7 in base::RunLoop::RunWithTimeout(base::TimeDelta) () at ./libcef.so
#23 0x00007fbe87307ec0 in CefDoMessageLoopWork() () at ./libcef.so
#24 0x00007fbe8bf73c82 in cef_do_work_func(_GstCefSrc*) () at /overlay/cef-gstreamer/Release/libgstcef.so
#25 0x00007fbe8d6aad03 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007fbe8d6aa285 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fbe8d6aa650 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fbe8d6aa962 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007fbe8dc0e9f3 in gst_bus_poll () at /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#30 0x000055820a0b0bb3 in  ()
#31 0x000055820a0afcb7 in  ()
#32 0x00007fbe8d06fb97 in __libc_start_main (main=0x55820a0af460, argc=17, argv=0x7fffc028bce8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffc028bcd8)
   at ../csu/libc-start.c:310
#33 0x000055820a0b00da in  ()

As far i know, google told me that it can be reproduce with a virtualbox image.

The problem seen that one :

I have declare a CEF issue :

Any idea of the problem ?

BR

Thierry

MathieuDuponchelle commented 4 years ago

No idea, but that's definitely an upstream CEF bug I'm afraid :) Good to see you filed an issue, don't hesitate to update this one with resolution!