Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.9.0, 5.10.0
-
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)