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

QtWebEngine crashes on Wayland

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Done
    • Affects Version/s: 5.7.0
    • Fix Version/s: 5.10.0 Beta 2
    • Component/s: WebEngine
    • Labels:
      None

      Description

      It looks like WebEngine hard assumes to be running on platform xcb. It does unconditional checks into X11-specific code and asserts.

      Output from running minimal example:

      sing Wayland-EGL
      [0819/101851:ERROR:resource_bundle.cc(720)] Failed to load /usr/share/qt5/resources/qtwebengine_devtools_resources.pak
      Some features may not be available.
      [0819/101851:ERROR:browser_main_loop.cc(217)] Running without the SUID sandbox! See https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md for more information on developing with the sandbox on.
      [0819/101851:ERROR:resource_bundle.cc(720)] Failed to load /usr/share/qt5/resources/qtwebengine_devtools_resources.pak
      Some features may not be available.
      ATTENTION: default value of option force_s3tc_enable overridden by environment.
      [0819/101851:ERROR:gl_surface_qt.cpp(187)] GLContextHelper::getXConfig() failed.
      [0819/101852:ERROR:command_buffer_proxy_impl.cc(196)] Could not send GpuCommandBufferMsg_Initialize.
      [0819/101852:ERROR:webgraphicscontext3d_command_buffer_impl.cc(210)] CommandBufferProxy::Initialize failed.
      [0819/101852:ERROR:webgraphicscontext3d_command_buffer_impl.cc(229)] Failed to initialize command buffer.
      Segmentation fault (core dumped)
      

      When passing "--platform xcb" to make it use the Xwayland server, it functions normally.

      The backtrace

      #0  0x00007ffff271ae39 in gfx::GLSurfaceQtEGL::Initialize() () from /usr/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5
      #1  0x00007ffff271b96a in gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size const&) ()
         from /usr/lib/x86_64-linux-gnu/libQt5WebEngineCore.so.5
      #2  0x00007ffff390cf6f in content::GpuChannelManager::GetDefaultOffscreenSurface (this=this@entry=0x7fff7c029160)
          at /workspace/build/src/3rdparty/chromium/content/common/gpu/gpu_channel_manager.cc:338
      #3  0x00007ffff393ba82 in content::GpuCommandBufferStub::OnInitialize (this=this@entry=0x7fff7c15f080, shared_state_handle=..., 
          reply_message=<optimized out>) at /workspace/build/src/3rdparty/chromium/content/common/gpu/gpu_command_buffer_stub.cc:554
      #4  0x00007ffff3939cd4 in base::DispatchToMethodImpl<content::GpuCommandBufferStub, void (content::GpuCommandBufferStub::*)(base::FileDescriptor, IPC::Message*), base::FileDescriptor, IPC::Message&, 0ul, 0ul> (out=<synthetic pointer>, in=..., 
          method=<optimized out>, obj=0x7fff7c15f080) at /workspace/build/src/3rdparty/chromium/base/tuple.h:290
      #5  base::DispatchToMethod<content::GpuCommandBufferStub, void (content::GpuCommandBufferStub::*)(base::FileDescriptor, IPC::Message*), base::FileDescriptor, IPC::Message&> (out=<synthetic pointer>, in=..., method=
          (void (content::GpuCommandBufferStub::*)(content::GpuCommandBufferStub * const, base::FileDescriptor, IPC::Message *)) 0x7ffff393b5a0 <content::GpuCommandBufferStub::OnInitialize(base::FileDescriptor, IPC::Message*)>, obj=0x7fff7c15f080)
          at /workspace/build/src/3rdparty/chromium/base/tuple.h:299
      #6  IPC::SyncMessageSchema<base::Tuple<base::FileDescriptor>, base::Tuple<bool&, gpu::Capabilities&> >::DispatchDelayReplyWithSendParams<content::GpuCommandBufferStub, void (content::GpuCommandBufferStub::*)(base::FileDescriptor, IPC::Message*)> (
          func=<optimized out>, obj=0x7fff7c15f080, msg=0x7fff70002dd0, send_params=..., ok=true)
      ---Type <return> to continue, or q <return> to quit---
          at /workspace/build/src/3rdparty/chromium/ipc/ipc_message_utils.h:1049
      #7  GpuCommandBufferMsg_Initialize::DispatchDelayReply<content::GpuCommandBufferStub, void, void (content::GpuCommandBufferStub::*)(base::FileDescriptor, IPC::Message*)> (parameter=0x0, func=<optimized out>, obj=0x7fff7c15f080, msg=0x7fff70002dd0)
          at /workspace/build/src/3rdparty/chromium/content/common/gpu/gpu_messages.h:572
      #8  content::GpuCommandBufferStub::OnMessageReceived (this=0x7fff7c15f080, message=...)
          at /workspace/build/src/3rdparty/chromium/content/common/gpu/gpu_command_buffer_stub.cc:293
      #9  0x00007ffff393558e in content::GpuChannel::HandleMessage (this=0x7fff7c005f80)
          at /workspace/build/src/3rdparty/chromium/content/common/gpu/gpu_channel.cc:851
      #10 0x00007ffff3fdea59 in base::Callback<void ()>::Run() const (this=0x7fff877fda68)
          at /workspace/build/src/3rdparty/chromium/base/callback.h:394
      #11 base::debug::TaskAnnotator::RunTask (this=this@entry=0x7fff9000a1f8, 
          queue_function=queue_function@entry=0x7ffff5dc7a51 "MessageLoop::PostTask", pending_task=...)
          at /workspace/build/src/3rdparty/chromium/base/debug/task_annotator.cc:51
      #12 0x00007ffff3f88648 in base::MessageLoop::RunTask (this=this@entry=0x7fff9000a080, pending_task=...)
          at /workspace/build/src/3rdparty/chromium/base/message_loop/message_loop.cc:486
      #13 0x00007ffff3f892b9 in base::MessageLoop::DeferOrRunPendingTask (this=this@entry=0x7fff9000a080, pending_task=...)
          at /workspace/build/src/3rdparty/chromium/base/message_loop/message_loop.cc:495
      #14 0x00007ffff3f89792 in base::MessageLoop::DoWork (this=0x7fff9000a080)
      ---Type <return> to continue, or q <return> to quit---
          at /workspace/build/src/3rdparty/chromium/base/message_loop/message_loop.cc:607
      #15 0x00007ffff3f8b7c9 in base::MessagePumpDefault::Run (this=0x7fff7c001940, delegate=0x7fff9000a080)
          at /workspace/build/src/3rdparty/chromium/base/message_loop/message_pump_default.cc:33
      #16 0x00007ffff3f9dc32 in base::RunLoop::Run (this=this@entry=0x7fff877fdc30)
          at /workspace/build/src/3rdparty/chromium/base/run_loop.cc:56
      #17 0x00007ffff3f878f5 in base::MessageLoop::Run (this=<optimized out>)
          at /workspace/build/src/3rdparty/chromium/base/message_loop/message_loop.cc:293
      #18 0x00007ffff3fb65aa in base::Thread::Run (message_loop=<optimized out>, this=0x7fff90007890)
          at /workspace/build/src/3rdparty/chromium/base/threading/thread.cc:200
      #19 base::Thread::ThreadMain (this=0x7fff90007890) at /workspace/build/src/3rdparty/chromium/base/threading/thread.cc:252
      #20 0x00007ffff3fb2947 in base::(anonymous namespace)::ThreadFunc (params=<optimized out>)
          at /workspace/build/src/3rdparty/chromium/base/threading/platform_thread_posix.cc:67
      #21 0x00007ffff12456fa in start_thread (arg=0x7fff877fe700) at pthread_create.c:333
      #22 0x00007ffff6fdeb5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
      

        Attachments

          Issue Links

          For Gerrit Dashboard: QTBUG-55384
          # Subject Branch Project Status CR V

            Activity

              People

              • Assignee:
                allan.jensen Allan Sandfeld Jensen
                Reporter:
                mgraesslin Martin Gräßlin
              • Votes:
                5 Vote for this issue
                Watchers:
                15 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes