Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-91857

5.15.3: Segfault in webrtc_event_logging::WebRtcEventLogManager::IsRemoteLoggingAllowedForBrowserContext when refreshing after screen sharing on Google Meet

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: P1: Critical P1: Critical
    • None
    • 5.15.3
    • WebEngine
    • None
    • 26f33dd7938ab03c586ff0e12e4d600c5852a351 (qt/qtwebengine-chromium/87-based) 7e0951307f5f38eb4d612403c365fd77e916c2ca (qt/qtwebengine-chromium/88-based) 124ade1c93dc84628f578b760023c171d13f2f85 (qt/qtwebengine-chromium/90-based)

      As mentioned in QTBUG-91856, I can't get screen sharing to work with QtWebEngine 5.15.3.

      When refreshing after attempting to share the screen, I get a crash:

      Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
      0x00007fffe103449a in webrtc_event_logging::WebRtcEventLogManager::IsRemoteLoggingAllowedForBrowserContext (this=0x0, browser_context=0x55555611d200) at ../../3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_manager.cc:508
      
      508	 if (!remote_logging_feature_enabled_) {
      (gdb) bt
      #0  0x00007fffe103449a in webrtc_event_logging::WebRtcEventLogManager::IsRemoteLoggingAllowedForBrowserContext (this=0x0, browser_context=0x55555611d200)
          at ../../3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_manager.cc:508
      #1  0x00007fffe1033651 in webrtc_event_logging::WebRtcEventLogManager::StartRemoteLogging(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, int, unsigned long, base::OnceCallback<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>) (this=0x0, render_process_id=5, 
          session_id="5422087987364289433", max_file_size_bytes=4268032, output_period_ms=-1, web_app_id=1, reply=...) at ../../3rdparty/chromium/chrome/browser/media/webrtc/webrtc_event_log_manager.cc:406
      #2  0x00007fffe107ed6b in WebRtcLoggingController::StartEventLogging(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, int, unsigned long, base::RepeatingCallback<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&) (this=0x55555686ca30, session_id="5422087987364289433", 
          max_log_size_bytes=4268032, output_period_ms=-1, web_app_id=1, callback=...) at ../../3rdparty/chromium/chrome/browser/media/webrtc/webrtc_logging_controller.cc:270
      #3  0x00007fffe101c4a2 in extensions::WebrtcLoggingPrivateStartEventLoggingFunction::Run (this=0x7fff00122650) at ../../3rdparty/chromium/chrome/browser/extensions/api/webrtc_logging_private/webrtc_logging_private_api.cc:566
      #4  0x00007fffe68f6922 in ExtensionFunction::RunWithValidation (this=0x7fff00122650) at ./../../3rdparty/chromium/extensions/browser/extension_function.cc:449
      #5  0x00007fffe68f8bf7 in extensions::ExtensionFunctionDispatcher::DispatchWithCallbackInternal(ExtensionHostMsg_Request_Params const&, content::RenderFrameHost*, int, base::RepeatingCallback<void (ExtensionFunction::ResponseType, base::ListValue const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&) (this=0x555556f6ff00, params=..., render_frame_host=0x555556f672f0, render_process_id=7, callback=...)
          at ./../../3rdparty/chromium/extensions/browser/extension_function_dispatcher.cc:383
      #6  0x00007fffe68f831f in extensions::ExtensionFunctionDispatcher::Dispatch (this=0x555556f6ff00, params=..., render_frame_host=0x555556f672f0, render_process_id=7)
          at ./../../3rdparty/chromium/extensions/browser/extension_function_dispatcher.cc:257
      #7  0x00007fffe695d8e7 in extensions::ExtensionWebContentsObserver::OnRequest (this=0x555556f6fee0, render_frame_host=0x555556f672f0, params=...) at ./../../3rdparty/chromium/extensions/browser/extension_web_contents_observer.cc:315
      #8  0x00007fffe696bb59 in IPC::DispatchToMethodImpl<extensions::ExtensionWebContentsObserver, void (extensions::ExtensionWebContentsObserver::*)(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&), content::RenderFrameHost, std::tuple<ExtensionHostMsg_Request_Params>, 0ul> (obj=0x555556f6fee0, method=
          (void (extensions::ExtensionWebContentsObserver::*)(extensions::ExtensionWebContentsObserver * const, content::RenderFrameHost *, const ExtensionHostMsg_Request_Params &)) 0x7fffe695d826 <extensions::ExtensionWebContentsObserver::OnRequest(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)>, parameter=0x555556f672f0, tuple=...) at ../../3rdparty/chromium/ipc/ipc_message_templates.h:65
      #9  0x00007fffe6968c34 in IPC::DispatchToMethod<extensions::ExtensionWebContentsObserver, content::RenderFrameHost, ExtensionHostMsg_Request_Params const&, std::tuple<ExtensionHostMsg_Request_Params> > (obj=0x555556f6fee0, method=
          (void (extensions::ExtensionWebContentsObserver::*)(extensions::ExtensionWebContentsObserver * const, content::RenderFrameHost *, const ExtensionHostMsg_Request_Params &)) 0x7fffe695d826 <extensions::ExtensionWebContentsObserver::OnRequest(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)>, parameter=0x555556f672f0, tuple=...) at ../../3rdparty/chromium/ipc/ipc_message_templates.h:77
      #10 0x00007fffe6966570 in IPC::MessageT<ExtensionHostMsg_Request_Meta, std::tuple<ExtensionHostMsg_Request_Params>, void>::Dispatch<extensions::ExtensionWebContentsObserver, extensions::ExtensionWebContentsObserver, content::RenderFrameHost, void (extensions::ExtensionWebContentsObserver::*)(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)> (msg=0x7fff00150ed0, obj=0x555556f6fee0, sender=0x555556f6fee0, parameter=0x555556f672f0, func=
          (void (extensions::ExtensionWebContentsObserver::*)(extensions::ExtensionWebContentsObserver * const, content::RenderFrameHost *, const ExtensionHostMsg_Request_Params &)) 0x7fffe695d826 <extensions::ExtensionWebContentsObserver::OnRequest(content::RenderFrameHost*, ExtensionHostMsg_Request_Params const&)>) at ../../3rdparty/chromium/ipc/ipc_message_templates.h:140
      #11 0x00007fffe695d17a in extensions::ExtensionWebContentsObserver::OnMessageReceived (this=0x555556f6fee0, message=..., render_frame_host=0x555556f672f0)
          at ./../../3rdparty/chromium/extensions/browser/extension_web_contents_observer.cc:239
      #12 0x00007fffee5df9b1 in content::WebContentsImpl::OnMessageReceived (this=0x555556f65880, render_frame_host=0x555556f672f0, message=...) at ../../3rdparty/chromium/content/browser/web_contents/web_contents_impl.cc:1167
      #13 0x00007fffedaeba0d in content::RenderFrameHostImpl::OnMessageReceived (this=0x555556f672f0, msg=...) at ../../3rdparty/chromium/content/browser/renderer_host/render_frame_host_impl.cc:1774
      #14 0x00007fffedf604eb in content::RenderProcessHostImpl::OnMessageReceived (this=0x555556f45cf0, msg=...) at ../../3rdparty/chromium/content/browser/renderer_host/render_process_host_impl.cc:3721
      #15 0x00007fffe856970f in IPC::ChannelProxy::Context::OnDispatchMessage (this=0x7fff0009ea80, message=...) at ../../3rdparty/chromium/ipc/ipc_channel_proxy.cc:325
      #16 0x00007fffe85715d1 in base::internal::FunctorTraits<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), void>::Invoke<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message> (method=(void (IPC::ChannelProxy::Context::*)(IPC::ChannelProxy::Context * const, const IPC::Message &)) 0x7fffe8569666 <IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&)>, receiver_ptr=...)
          at ../../3rdparty/chromium/base/bind_internal.h:498
      #17 0x00007fffe857030c in base::internal::InvokeHelper<false, void>::MakeItSo<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message> (functor=
          @0x7fff00150ec0: (void (IPC::ChannelProxy::Context::*)(IPC::ChannelProxy::Context * const, const IPC::Message &)) 0x7fffe8569666 <IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&)>)
          at ../../3rdparty/chromium/base/bind_internal.h:637
      #18 0x00007fffe856df60 in base::internal::Invoker<base::internal::BindState<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message>, void ()>::RunImpl<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), std::tuple<scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message>, 0ul, 1ul>(void (IPC::ChannelProxy::Context::*&&)(IPC::Message const&), std::tuple<scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message>&&, std::integer_sequence<unsigned long, 0ul, 1ul>) (functor=
          @0x7fff00150ec0: (void (IPC::ChannelProxy::Context::*)(IPC::ChannelProxy::Context * const, const IPC::Message &)) 0x7fffe8569666 <IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&)>, bound=...)
          at ../../3rdparty/chromium/base/bind_internal.h:711
      #19 0x00007fffe856caf5 in base::internal::Invoker<base::internal::BindState<void (IPC::ChannelProxy::Context::*)(IPC::Message const&), scoped_refptr<IPC::ChannelProxy::Context>, IPC::Message>, void ()>::RunOnce(base::internal::BindStateBase*) (base=0x7fff00150ea0) at ../../3rdparty/chromium/base/bind_internal.h:679
      #20 0x00007fffe0ddbd94 in base::OnceCallback<void ()>::Run() && (this=0x5555562202c0) at ../../3rdparty/chromium/base/callback.h:100
      #21 0x00007fffe7600bb5 in base::TaskAnnotator::RunTask (this=0x555556215ef8, trace_event_name=0x7fffda54a5df "SequenceManager RunTask", pending_task=0x5555562202c0) at ./../../3rdparty/chromium/base/task/common/task_annotator.cc:163
      #22 0x00007fffe764b316 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl (this=0x555556215d60, continuation_lazy_now=0x7fffffffbc80)
          at ./../../3rdparty/chromium/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:332
      #23 0x00007fffe764ab38 in base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork (this=0x555556215d60) at ./../../3rdparty/chromium/base/task/sequence_manager/thread_controller_with_message_pump_impl.cc:252
      #24 0x00007fffe0d7f4a4 in QtWebEngineCore::MessagePumpForUIQt::handleScheduledWork (this=0x555556196250) at ../browser_main_parts_qt.cpp:208
      #25 0x00007fffe0d7f1c5 in QtWebEngineCore::MessagePumpForUIQt::MessagePumpForUIQt()::{lambda()#1}::operator()() const (__closure=0x555556196278) at ../browser_main_parts_qt.cpp:121
      [...]
      

      Note I can't reproduce this with simplebrowser for some reason, only with qutebrowser - however, I don't believe this is an issue in my code.

      Additionally, with a debug build, the DCHECK in ExtensionFunction::~ExtensionFunction() in chromium/extensions/browser/extension_function.cc gets hit:

        extensions::ExtensionsBrowserClient* browser_client =
            extensions::ExtensionsBrowserClient::Get();
        DCHECK(!browser_client || browser_client->IsShuttingDown() || did_respond() ||
               ignore_all_did_respond_for_testing_do_not_use)
            << name();
      

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            qt_webengine_team Qt WebEngine Team
            the compiler Florian Bruhin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes