crash while running under a VM server

Do not post support requests, bug reports or feature requests. Discuss CEF here. Non-CEF related discussion goes in General Discussion!

crash while running under a VM server

Postby tgayet » Tue Oct 15, 2019 8:46 am

hi,

While i am running cef on a virtualized server i can observed the following crash.

here is the backtrace :

Code: Select all
[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  ()
(gdb) btfull
Undefined command: "btfull".  Try "help".
(gdb) bt full
#0  0x00007fbe8d448fa0 in __GI___pthread_mutex_lock (mutex=0x10) at ../nptl/pthread_mutex_lock.c:65
        type = <optimized out>
        __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
        id = <optimized out>
#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
        result = <optimized out>
        unwind_buf =
              {cancel_jmp_buf = {{jmp_buf = {0, 3068117579287665527, 94017002602672, 140736417283296, 0, 0, 9110695088326089591, 9146013375173270391}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fbe8df14733 <_dl_init+259>, 0x7fbe8defaa58}, data = {prev = 0x0, cleanup = 0x0, canceltype = -1913567437}}}
        not_first_call = <optimized out>
#33 0x000055820a0b00da in  ()


The OS is a ubuntu 18.04 LTS.

The core dump sho a problem while locking the mutex :

cef_lock_impl.c :
Code: Select all
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "include/base/internal/cef_lock_impl.h"
#include "include/base/cef_logging.h"

#if defined(OS_WIN)

namespace base {
namespace cef_internal {

LockImpl::LockImpl() {
  // The second parameter is the spin count, for short-held locks it avoid the
  // contending thread from going to sleep which helps performance greatly.
  ::InitializeCriticalSectionAndSpinCount(&native_handle_, 2000);
}

LockImpl::~LockImpl() {
  ::DeleteCriticalSection(&native_handle_);
}

bool LockImpl::Try() {
  if (::TryEnterCriticalSection(&native_handle_) != FALSE) {
    return true;
  }
  return false;
}

void LockImpl::Lock() {
  ::EnterCriticalSection(&native_handle_);
}

void LockImpl::Unlock() {
  ::LeaveCriticalSection(&native_handle_);
}

}  // namespace cef_internal
}  // namespace base

#elif defined(OS_POSIX)

#include <errno.h>
#include <string.h>

#include "include/base/cef_logging.h"

namespace base {
namespace cef_internal {

LockImpl::LockImpl() {
#if DCHECK_IS_ON()
  // In debug, setup attributes for lock error checking.
  pthread_mutexattr_t mta;
  int rv = pthread_mutexattr_init(&mta);
  DCHECK_EQ(rv, 0) << ". " << strerror(rv);
  rv = pthread_mutexattr_settype(&mta, PTHREAD_MUTEX_ERRORCHECK);
  DCHECK_EQ(rv, 0) << ". " << strerror(rv);
  rv = pthread_mutex_init(&native_handle_, &mta);
  DCHECK_EQ(rv, 0) << ". " << strerror(rv);
  rv = pthread_mutexattr_destroy(&mta);
  DCHECK_EQ(rv, 0) << ". " << strerror(rv);
#else
  // In release, go with the default lock attributes.
  pthread_mutex_init(&native_handle_, NULL);
  //native_handle_ = PTHREAD_MUTEX_INITIALIZER;
  //pthread_mutexattr_init(&mutex_attribute);
  //pthread_mutexattr_settype(&mutex_attribute,    PTHREAD_MUTEX_RECURSIVE_NP);
  //pthread_mutexattr_setpshared(&mutex_attribute, PTHREAD_PROCESS_SHARED);
  //pthread_mutex_init(&native_handle_, &mutex_attribute);

  //sem_init(&native_handle_, 0, 1);
#endif
}

LockImpl::~LockImpl() {
  int rv = pthread_mutex_destroy(&native_handle_);
  //int rv = sem_destroy(&native_handle_);
  DCHECK_EQ(rv, 0) << ". " << strerror(rv);
}

bool LockImpl::Try() {
  int rv = pthread_mutex_trylock(&native_handle_);
  /*int value = 0;
  int rv;
  sem_getvalue(&native_handle_, &value);
  if  (value >= 0) {
   rv = 0;
  } else {
        rv = 1;
  }*/
  DCHECK(rv == 0 || rv == EBUSY) << ". " << strerror(rv);
  return rv == 0;
}

void LockImpl::Lock() {
  int rv = pthread_mutex_lock(&native_handle_);
  //int rv = sem_wait(&native_handle_);
  DCHECK_EQ(rv, 0) << ". " << strerror(rv);
}

void LockImpl::Unlock() {
  int rv = pthread_mutex_unlock(&native_handle_);
  //int rv = sem_post(&native_handle_);
  DCHECK_EQ(rv, 0) << ". " << strerror(rv);
}

}  // namespace cef_internal
}  // namespace base

#endif  // defined(OS_POSIX)


cef_lock_impl.h :
Code: Select all
// Copyright (c) 2011 Google Inc. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//    * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//    * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//    * Neither the name of Google Inc. nor the name Chromium Embedded
// Framework nor the names of its contributors may be used to endorse
// or promote products derived from this software without specific prior
// written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

// Do not include this header file directly. Use base/cef_lock.h instead.

#ifndef CEF_INCLUDE_BASE_INTERNAL_CEF_LOCK_IMPL_H_
#define CEF_INCLUDE_BASE_INTERNAL_CEF_LOCK_IMPL_H_

#include "include/base/cef_build.h"

#if defined(OS_WIN)
#include <windows.h>
#elif defined(OS_POSIX)
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>
#endif

#include "include/base/cef_macros.h"

namespace base {
namespace cef_internal {

// This class implements the underlying platform-specific spin-lock mechanism
// used for the Lock class.  Most users should not use LockImpl directly, but
// should instead use Lock.
class LockImpl {
 public:
#if defined(OS_WIN)
  typedef CRITICAL_SECTION NativeHandle;
#elif defined(OS_POSIX)
  typedef pthread_mutex_t NativeHandle;
  //typedef sem_t NativeHandle;
#endif

  LockImpl();
  ~LockImpl();

  // If the lock is not held, take it and return true.  If the lock is already
  // held by something else, immediately return false.
  bool Try();

  // Take the lock, blocking until it is available if necessary.
  void Lock();

  // Release the lock.  This must only be called by the lock's holder: after
  // a successful call to Try, or a call to Lock.
  void Unlock();

  // Return the native underlying lock.
  // TODO(awalker): refactor lock and condition variables so that this is
  // unnecessary.
  NativeHandle* native_handle() { return &native_handle_; }

 private:
  NativeHandle       native_handle_;
  //pthread_mutexattr_t   mutex_attribute;

  DISALLOW_COPY_AND_ASSIGN(LockImpl);
};

}  // namespace cef_internal
}  // namespace base

#endif  // CEF_INCLUDE_BASE_INTERNAL_CEF_LOCK_IMPL_H_


The bug looks like a bug : https://bugs.launchpad.net/ubuntu/+sour ... ug/1281302
Last edited by tgayet on Wed Oct 16, 2019 7:33 am, edited 1 time in total.
tgayet
Techie
 
Posts: 27
Joined: Wed Apr 24, 2019 6:53 am

Re: crash while running under a VM server

Postby magreenblatt » Tue Oct 15, 2019 9:11 am

What CEF version? What steps reproduce the crash?
magreenblatt
Site Admin
 
Posts: 12382
Joined: Fri May 29, 2009 6:57 pm

Re: crash while running under a VM server

Postby tgayet » Wed Oct 16, 2019 3:00 am

Hi,

the version of CEF is :

CEF 76.0.1+g763dfe6+chromium-76.0.3809.62
Chromium 76.0.3809.62

Steps to reproduce :

I am using a project based on the following github : https://github.com/centricular/gstcefsrc

Code: Select all
export GST_PLUGIN_PATH=$PWD/Release:$GST_PLUGIN_PATH
gst-launch-1.0 cefsrc url="https://soundcloud.com/platform/sama" ! queue ! cefdemux name=d \
  d.video ! video/x-raw ! queue ! videoconvert ! autovideosink \
  d. ! audio/x-raw ! queue ! audioconvert ! autoaudiosink async-handling=true

or
Code: Select all
export GST_PLUGIN_PATH=$PWD/Release:$GST_PLUGIN_PATH
gst-launch-1.0 cefsrc url="https://soundcloud.com/platform/sama" ! queue ! cefdemux name=d \
  d.video ! video/x-raw ! queue ! videoconvert ! autovideosink \
  d. ! audio/x-raw ! queue ! audioconvert ! fakesink dump=true


Requirements :

X server :

Check if one display is running and if the display variable is well exported :

Code: Select all
ps aux |grep -i Xvfb|grep -v grep
dazzl    28466  0.0  0.3 470016 62096 pts/6    Sl   Oct11   0:00 Xvfb -br -nolisten tcp -screen 0 1024x768x24 :1004


Else, just start a X server (i am using Xvfb) :

Code: Select all
Xvfb -br -nolisten tcp -screen 0 1024x768x24 :1009 &
export DISPLAY=:1009


Pulse Audio :

Check if one is running :

Code: Select all
ps aux|grep pulse|grep -v grep
dazzl    22235  0.0  0.0 271148  6804 ?        Sl   Oct08   0:00 pulseaudio -D


Else, let's start it :

Code: Select all
pulseaudio -D &


Several variables for gstreamer :

Code: Select all
export GST_DEBUG=3
export GST_DEBUG_DUMP_DOT_DIR=$PWD
export GST_PLUGIN_PATH=$PWD


TRACES LEVEL : https://gstreamer.freedesktop.org/docum ... language=c

STATES : https://gstreamer.freedesktop.org/docum ... language=c

I am running it on an ubuntu server 18.04 LTS located on amazon EC2 (virtualized) but it seem that it can be reproduce on a virtualbox.

thanks in advance

BR
Thierry
Last edited by tgayet on Wed Oct 16, 2019 7:44 am, edited 4 times in total.
tgayet
Techie
 
Posts: 27
Joined: Wed Apr 24, 2019 6:53 am

Re: crash while running under a VM server

Postby magreenblatt » Wed Oct 16, 2019 4:22 am

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

Re: crash while running under a VM server

Postby tgayet » Wed Oct 16, 2019 7:25 am

Not really.

It works fine on a normal PC running linux x86_64 (ubuntu server 18.04) and it crash inside a Virtual Machine.

Code: Select all
gst-launch-1.0 cefsrc url="https://soundcloud.com/platform/sama" ! queue ! cefdemux name=d   d.video ! video/x-raw ! queue ! videoconvert ! fakesink

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
0:00:00.284072675  9681 0x562826566940 FIXME                default gstutils.c:3981:gst_pad_create_stream_id_internal:<cefsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
[1016/122549.154333:FATAL:gpu_data_manager_impl_private.cc(894)] The display compositor is frequently crashing. Goodbye.
#0 0x7f2b599cb259 base::debug::CollectStackTrace()
#1 0x7f2b599344a7 logging::LogMessage::~LogMessage()
#2 0x7f2b582b2849 content::GpuDataManagerImplPrivate::FallBackToNextGpuMode()
#3 0x7f2b582b4acd content::GpuProcessHost::RecordProcessCrash()
#4 0x7f2b582b6412 content::GpuProcessHost::OnProcessCrashed()
#5 0x7f2b58117a8e content::BrowserChildProcessHostImpl::OnChildDisconnected()
#6 0x7f2b59f7b4da IPC::internal::MessagePipeReader::OnPipeError()
#7 0x7f2b59ab32fc mojo::InterfaceEndpointClient::NotifyError()
#8 0x7f2b59f7f517 IPC::(anonymous namespace)::ChannelAssociatedGroupController::NotifyEndpointOfError()
#9 0x7f2b59f806a4 IPC::(anonymous namespace)::ChannelAssociatedGroupController::OnPipeError()
#10 0x7f2b59aaf5f6 mojo::Connector::HandleError()
#11 0x7f2b59ac3bce mojo::SimpleWatcher::OnHandleReady()
#12 0x7f2b59ac3ea8 mojo::SimpleWatcher::Context::Notify()
#13 0x7f2b59ac3520 mojo::SimpleWatcher::Context::CallNotify()
#14 0x7f2b57efbda9 mojo::core::WatcherDispatcher::InvokeWatchCallback()
#15 0x7f2b57efb73c mojo::core::Watch::InvokeCallback()
#16 0x7f2b57ef7e7d mojo::core::RequestContext::~RequestContext()
#17 0x7f2b57eefa09 mojo::core::NodeChannel::OnChannelError()
#18 0x7f2b57f0043b mojo::core::(anonymous namespace)::ChannelPosix::OnFileCanReadWithoutBlocking()
#19 0x7f2b599de63d base::MessagePumpLibevent::OnLibeventNotification()
#20 0x7f2b59aabc2d event_base_loop
#21 0x7f2b599de91e base::MessagePumpLibevent::Run()
#22 0x7f2b59988979 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run()
#23 0x7f2b5995b7e7 base::RunLoop::RunWithTimeout()
#24 0x7f2b58124974 content::BrowserProcessSubThread::IOThreadRun()
#25 0x7f2b5999b861 base::Thread::ThreadMain()
#26 0x7f2b599e1d2e base::(anonymous namespace)::ThreadFunc()
#27 0x7f2b5f9726db start_thread
#28 0x7f2b5f69b88f clone

--2019-10-16 12:25:49--  http://localhost:8083/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8083... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: '/dev/fd/4'

/dev/fd/4                                              [<=>                                                                                                              ]       0  --.-KB/s               
Crash dump id: D9881922439E4735
[2]    9681 abort      gst-launch-1.0 cefsrc url="https://soundcloud.com/platform/sama" ! queue !   


Code: Select all
cat 767CD6BB9D314657.json
{
  "lsb-release": "Unknown",
  "num-switches": "12",
  "pid": "10726",
  "platform": "linux64",
  "product": "cefclient",
  "ptime": "127",
  "ptype": "browser",
  "switch-1": "--enable-crash-reporter",
  "switch-10": "--disable-dev-shm-usage",
  "switch-11": "--disable-gpu-compositing",
  "switch-2": "--browser-subprocess-path=/home/tgayet/Workspace/gstcefsrc-75.0.6+g90ecd35+chromium-75.0.3770.80-DAZZL/build/Release/gstcefsubp",
  "switch-3": "--no-sandbox",
  "switch-4": "--lang=en-US",
  "switch-5": "--log-severity=disable",
  "switch-6": "--disable-features=OutOfBlinkCors",
  "switch-7": "--autoplay-policy=no-user-gesture-required",
  "switch-8": "--crash-dumps-dir=/tmp",
  "switch-9": "--disable-gpu",
  "ui_scheduler_async_stack": "0x7F0CF4CB25F4 0x7F0CF6415E06",
  "version": "1.0.0"
}%       


/usr/bin/crash_reporter.cfg :

Code: Select all
   
[Config]
# Product information.
ProductName=cefclient
ProductVersion=1.0.0

# Required to enable crash dump upload.
ServerURL=http://localhost:8083

# Disable rate limiting so that all crashes are uploaded.
RateLimitEnabled=false
MaxUploadsPerDay=0

[CrashKeys]
# The cefclient sample application sets these values (see step 5 below).
testkey_small1=small
testkey_small2=small
testkey_medium1=medium
testkey_medium2=medium
testkey_large1=large
testkey_large2=large


Then:

Code: Select all
python /overlay/cef-gstreamer/Release/crash_server.py 8083 /overlay/cef-gstreamer/Release/
tgayet
Techie
 
Posts: 27
Joined: Wed Apr 24, 2019 6:53 am

Re: crash while running under a VM server

Postby tgayet » Thu Oct 24, 2019 11:43 am

@Marshall any idea about the problem ?

It works fine on a standard PC but not a on most VM.

Any suggession welcome.

Regards

Thierry
tgayet
Techie
 
Posts: 27
Joined: Wed Apr 24, 2019 6:53 am


Return to CEF Discussion

Who is online

Users browsing this forum: No registered users and 23 guests

cron