sddm-greeter crashed in QtWaylandClient::QWaylandWindow::createDecoration sometimes when logging in. This problem happened 3/5 times after I updated a Fedora Rawhide/40 KDE Plasma installation after the compose on 2024-1-25. This update included about 130 rpms. I don't see any obvious packages in the update which would be involved. The trace of the crashing thread was Core was generated by `/usr/bin/sddm-greeter --socket /tmp/sddm--EkWLGU --theme /usr/share/sddm/themes'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007ff3e7cc0a40 in typeinfo name for QObjectCleanupHandler () from /lib64/libQt6Core.so.6 [Current thread is 1 (Thread 0x7ff3aa6006c0 (LWP 24994))] (gdb) bt #0 0x00007ff3e7cc0a40 in typeinfo name for QObjectCleanupHandler () at /lib64/libQt6Core.so.6 #1 0x00007ff3e77a6f5a in QtWaylandClient::QWaylandWindow::createDecoration (this=0x55e4df055a50) at /usr/src/debug/qt6-qtwayland-6.6.1-1.fc40.x86_64/src/client/qwaylandwindow.cpp:1034 #2 0x00007ff3e341499c in QtWaylandClient::QWaylandGLContext::makeCurrent (this=this@entry=0x7ff3740021e0, surface=<optimized out>) at /usr/src/debug/qt6-qtwayland-6.6.1-1.fc40.x86_64/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:315 #3 0x00007ff3e859c188 in QOpenGLContext::makeCurrent (this=0x7ff374001f30, surface=surface@entry=0x55e4dedf8130) at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/kernel/qopenglcontext.cpp:661 #4 0x00007ff3e85b48e9 in QRhiGles2::ensureContext (this=0x7ff3740018c0, surface=0x55e4dedf8130) at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/rhi/qrhigles2.cpp:619 #5 0x00007ff3e85c071e in QRhiGles2::beginFrame (this=0x7ff3740018c0, swapChain=0x7ff3741e1600) at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/rhi/qrhigles2.cpp:2028 #6 0x00007ff3e8444bea in QRhi::beginFrame (this=0x7ff3740018a0, swapChain=0x7ff3741e1600, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/gui/rhi/qrhi.cpp:10146 #7 0x00007ff3e98c29f4 in QSGRenderThread::syncAndRender (this=this@entry=0x55e4df861b20) at /usr/include/qt6/QtCore/qflags.h:73 #8 0x00007ff3e98c5e93 in QSGRenderThread::run (this=0x55e4df861b20) at /usr/src/debug/qt6-qtdeclarative-6.6.1-1.fc40.x86_64/src/quick/scenegraph/qsgthreadedrenderloop.cpp:946 #9 0x00007ff3e7b50ace in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/thread/qthread_unix.cpp:324 #10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=<optimized out>) at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/thread/qthread_unix.cpp:260 #11 QThreadPrivate::start (arg=0x55e4df861b20) at /usr/src/debug/qt6-qtbase-6.6.1-1.fc40.x86_64/src/corelib/thread/qthread_unix.cpp:283 #12 0x00007ff3e72a81f7 in start_thread (arg=<optimized out>) at pthread_create.c:447 #13 0x00007ff3e732a2dc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 QtWaylandClient::QWaylandWindow::createDecoration in frame 1 had a null pointer mShellSurface. The problem might involve a race condition where mShellSurface was sometimes null then used. (gdb) frame 1 #1 0x00007ff3e77a6f5a in QtWaylandClient::QWaylandWindow::createDecoration (this=0x55e4df055a50) at /usr/src/debug/qt6-qtwayland-6.6.1-1.fc40.x86_64/src/client/qwaylandwindow.cpp:1034 1034 if (!mShellSurface || !mShellSurface->wantsDecorations()) (gdb) p mShellSurface $1 = (QtWaylandClient::QWaylandShellSurface *) 0x0 I've attached the full trace of all threads. The package versions were as follows. sddm-0.20.0-7.fc40.x86_64 qt6-qtwayland-6.6.1-1.fc40.x86_64 kwin-5.92.0-1.fc40.x86_64 Reproducible: Sometimes Steps to Reproduce: 1. Boot a Fedora Rawhide KDE Plasma installation updated to 2024-1-25 2. Log in to Plasma 5.92.0 on Wayland from sddm 3. If the problem didn't happen, log out and log in until it does Actual Results: sddm-greeter crashed in QtWaylandClient::QWaylandWindow::createDecoration sometimes when logging in Expected Results: sddm-greeter shouldn't have crashed. I reported plasmashell crashes with similar traces at https://bugzilla.redhat.com/show_bug.cgi?id=2252833 Several KDE programs were reported to crash in QWaylandWindow::createDecoration since it was called from multiple threads but was not thread-safe https://bugs.kde.org/show_bug.cgi?id=479302 https://bugreports.qt.io/browse/QTBUG-105703 David Edmundson wrote a patch to qt6-qtwayland for this problem at https://codereview.qt-project.org/c/qt/qtwayland/+/529547
Created attachment 2010589 [details] Full trace of all threads of sddm-greeter crash
This bug appears to have been reported against 'rawhide' during the Fedora Linux 40 development cycle. Changing version to 40.