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

Crash in wl_proxy_create_wrapper after window destruction

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.9.5
    • 5.9.0, 5.10.0
    • QPA: Wayland
    • None

    Description

      Thread 5 "QSGRenderThread" received signal SIGSEGV, Segmentation fault.
      [Switching to Thread 0x7fffd89fd700 (LWP 18877)]
      0x00007fffef94fc81 in wl_proxy_create_wrapper () from /usr/lib/libwayland-client.so.0
      (gdb) bt
      #0  0x00007fffef94fc81 in wl_proxy_create_wrapper () from /usr/lib/libwayland-client.so.0
      #1  0x00007fffe509f37d in ?? () from /usr/lib/libEGL_mesa.so.0
      #2  0x00007fffe508c7cf in ?? () from /usr/lib/libEGL_mesa.so.0
      #3  0x00007fffecf2355c in QtWaylandClient::QWaylandEglWindow::updateSurface (this=this@entry=0x555555d5dde0, create=create@entry=true)
          at /home/david/projects/qt5/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp:141
      #4  0x00007fffecf210db in QtWaylandClient::QWaylandGLContext::makeCurrent (this=this@entry=0x555555d22c10, surface=<optimized out>)
          at /home/david/projects/qt5/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:410
      #5  0x00007ffff6d8e30f in QOpenGLContext::makeCurrent (this=0x555555d368e0, surface=0x5555559346a0) at /home/david/projects/qt5/qtbase/src/gui/kernel/qopenglcontext.cpp:984
      #6  0x00007ffff7ab062e in QSGRenderThread::invalidateOpenGL (this=this@entry=0x555555d36cf0, window=0x555555934690, inDestructor=<optimized out>, fallback=0x0)
          at /home/david/projects/qt5/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:494
      #7  0x00007ffff7ab897a in QSGRenderThread::event (this=0x555555d36cf0, e=0x555555d97f30) at /home/david/projects/qt5/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:402
      #8  0x00007ffff7ab7819 in QSGRenderThread::processEventsAndWaitForMore (this=this@entry=0x555555d36cf0) at /home/david/projects/qt5/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:710
      #9  0x00007ffff7ab7cfc in QSGRenderThread::run (this=0x555555d36cf0) at /home/david/projects/qt5/qtdeclarative/src/quick/scenegraph/qsgthreadedrenderloop.cpp:738
      #10 0x00007ffff62fb674 in QThreadPrivate::start (arg=0x555555d36cf0) at /home/david/projects/qt5/qtbase/src/corelib/thread/qthread_unix.cpp:376
      #11 0x00007ffff5d7308a in start_thread () from /usr/lib/libpthread.so.0
      #12 0x00007ffff51c042f in clone () from /usr/lib/libc.so.6

       

      Crash happens when we hide a GL window (which since 5.9 deletes the wl_surface), then make current on that surface. We do this not to draw anything but to make the GL context current to delete any resources.

      Super simple test case attached, just run in qmlscene on wayland.

       

      (will be fixed by https://codereview.qt-project.org/#/c/210552/ making this purely to attach file)

      Attachments

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

        Activity

          People

            johanhelsing Johan Helsing
            davidedmundson David Edmundson
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes