STEPS TO REPRODUCE 1. start wayland session 2. click three or more times on the icon to open the apps launcher 3. OBSERVED RESULT plasma crashes EXPECTED RESULT no crash SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.16.0 KDE Frameworks Version: 5.59.0 Qt Version: 5.12.4 Please specify a command at the end of 'thread apply all' Thread 22 (Thread 0x7fa898eae700 (LWP 9778)): #0 0x00007fa8cdd8ce94 in wl_proxy_marshal_constructor () at /usr/lib/libwayland-client.so.0 #1 0x00007fa8c90c290a in wl_surface_frame (wl_surface=<optimized out>) at ../../include/QtWaylandClient/5.12.4/QtWaylandClient/private/../../../../../src/client/wayland-wayland-client-protocol.h:2798 #2 0x00007fa8c90c290a in QtWayland::wl_surface::frame() (this=<optimized out>) at qwayland-wayland.cpp:1134 #3 0x00007fa8c909d19b in QtWaylandClient::QWaylandWindow::handleUpdate() (this=0x55a11449c290) at /tmp/makepkg/qt5-wayland-debug/src/qtwayland-everywhere-src-5.12.4/src/client/qwaylandwindow.cpp:1151 #4 0x00007fa8c80fad78 in QtWaylandClient::QWaylandGLContext::swapBuffers(QPlatformSurface*) (this=0x55a1144805f0, surface=<optimized out>) at /tmp/makepkg/qt5-wayland-debug/src/qtwayland-everywhere-src-5.12.4/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:568 #5 0x00007fa8ce82f2f0 in QOpenGLContext::swapBuffers(QSurface*) (this=0x55a10e7420b0, surface=<optimized out>) at kernel/qopenglcontext.cpp:1115 #6 0x00007fa8cffe682e in QSGRenderThread::syncAndRender() (this=this@entry=0x55a1142a46e0) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:652 #7 0x00007fa8cffea6f8 in QSGRenderThread::run() (this=0x55a1142a46e0) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:730 #8 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a1142a46e0) at thread/qthread_unix.cpp:361 #9 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #10 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 20 (Thread 0x7fa872ffd700 (LWP 9691)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a1136de9a0) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a1136e4d50, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x55a1136e4d58, mutex=mutex@entry=0x55a1136e4d50, time=time@entry=18446744073709551615) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8cffea4cd in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x55a1136e4d48) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:245 #5 0x00007fa8cffea4cd in QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x55a1136e4cd0) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:710 #6 0x00007fa8cffea73c in QSGRenderThread::run() (this=0x55a1136e4cd0) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:739 #7 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a1136e4cd0) at thread/qthread_unix.cpp:361 #8 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 [m Thread 19 (Thread 0x7fa8721c9700 (LWP 9690)): #0 0x00007fa8cdf340d1 in poll () at /usr/lib/libc.so.6 #1 0x00007fa8b9acc8b3 in poll (__timeout=-1, __nfds=3, __fds=0x7fa880021d60) at /usr/include/bits/poll2.h:46 #2 0x00007fa8b9acc8b3 in poll_func (ufds=0x7fa880021d60, nfds=3, timeout=-1, userdata=0x55a112e45d30) at pulse/thread-mainloop.c:69 #3 0x00007fa8b9abdbd0 in pa_mainloop_poll (m=m@entry=0x55a112e128d0) at pulse/mainloop.c:824 #4 0x00007fa8b9abe220 in pa_mainloop_iterate (m=0x55a112e128d0, block=<optimized out>, retval=0x0) at pulse/mainloop.c:926 #5 0x00007fa8b9abe2d1 in pa_mainloop_run (m=0x55a112e128d0, retval=retval@entry=0x0) at pulse/mainloop.c:945 #6 0x00007fa8b9acc7ee in thread (userdata=0x55a1146461e0) at pulse/thread-mainloop.c:100 #7 0x00007fa8b97c4cec in internal_thread_func (userdata=0x55a1147c8f60) at pulsecore/thread-posix.c:81 #8 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 16 (Thread 0x7fa863fff700 (LWP 9524)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a115c1a500) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a11078a380, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=0x55a115c2b378, mutex=0x55a11078a380, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8ab1aa479 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fa8ab1ae099 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fa8ab1a96ad in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007fa8ab1ae0f2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007fa8ab1a96ad in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007fa8ab1ac0e9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a115c27d80) at thread/qthread_unix.cpp:361 #11 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 15 (Thread 0x7fa8709c6700 (LWP 9523)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a115c1a500) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a11078a380, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=0x55a115c2b378, mutex=0x55a11078a380, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8ab1aa479 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fa8ab1ae099 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fa8ab1a96ad in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007fa8ab1ae0f2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007fa8ab1a96ad in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007fa8ab1ac0e9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x7fa86821e470) at thread/qthread_unix.cpp:361 #11 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 14 (Thread 0x7fa8711c7700 (LWP 9522)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a115c1a500) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a11078a380, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=0x55a115c2b378, mutex=0x55a11078a380, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8ab1aa479 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fa8ab1ae099 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fa8ab1a96ad in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007fa8ab1ae0f2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007fa8ab1a96ad in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007fa8ab1ac0e9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a115cbecb0) at thread/qthread_unix.cpp:361 #11 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 13 (Thread 0x7fa8719c8700 (LWP 9521)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a115c1a500) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a11078a380, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=0x55a115c2b378, mutex=0x55a11078a380, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8ab1aa479 in ThreadWeaver::Weaver::takeFirstAvailableJobOrSuspendOrWait(ThreadWeaver::Thread*, bool, bool, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #5 0x00007fa8ab1ae099 in () at /usr/lib/libKF5ThreadWeaver.so.5 #6 0x00007fa8ab1a96ad in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #7 0x00007fa8ab1ae0f2 in () at /usr/lib/libKF5ThreadWeaver.so.5 #8 0x00007fa8ab1a96ad in ThreadWeaver::Weaver::applyForWork(ThreadWeaver::Thread*, bool) () at /usr/lib/libKF5ThreadWeaver.so.5 #9 0x00007fa8ab1ac0e9 in ThreadWeaver::Thread::run() () at /usr/lib/libKF5ThreadWeaver.so.5 #10 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a115c8e330) at thread/qthread_unix.cpp:361 #11 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #12 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 12 (Thread 0x7fa8737fe700 (LWP 9487)): #0 0x00007fa8cdf340d1 in poll () at /usr/lib/libc.so.6 #1 0x00007fa8cabcd7c0 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa8cabce7f2 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa8b9e36508 in () at /usr/lib/libgio-2.0.so.0 #4 0x00007fa8caba8f21 in () at /usr/lib/libglib-2.0.so.0 #5 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 11 (Thread 0x7fa873fff700 (LWP 9486)): #0 0x00007fa8cdf340d1 in poll () at /usr/lib/libc.so.6 #1 0x00007fa8cabcd7c0 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa8cabcd8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa8cabcd902 in () at /usr/lib/libglib-2.0.so.0 #4 0x00007fa8caba8f21 in () at /usr/lib/libglib-2.0.so.0 #5 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #6 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 9 (Thread 0x7fa89b589700 (LWP 9438)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a111680cc0) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a11167b280, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x55a11167b288, mutex=mutex@entry=0x55a11167b280, time=time@entry=18446744073709551615) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8cffea4cd in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x55a11167b278) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:245 #5 0x00007fa8cffea4cd in QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x55a11167b200) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:710 #6 0x00007fa8cffea73c in QSGRenderThread::run() (this=0x55a11167b200) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:739 #7 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a11167b200) at thread/qthread_unix.cpp:361 #8 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7fa8a89a1700 (LWP 9417)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a10f0115b0) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a10efcd800, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x55a10efcd808, mutex=mutex@entry=0x55a10efcd800, time=time@entry=18446744073709551615) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8cffea4cd in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x55a10efcd7f8) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:245 #5 0x00007fa8cffea4cd in QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x55a10efcd780) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:710 #6 0x00007fa8cffea73c in QSGRenderThread::run() (this=0x55a10efcd780) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:739 #7 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a10efcd780) at thread/qthread_unix.cpp:361 #8 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7fa8aa8de700 (LWP 9414)): #0 0x00007fa8cdf340d1 in poll () at /usr/lib/libc.so.6 #1 0x00007fa8cabcd7c0 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa8cabcd8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa8ce46a079 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa89c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fa8ce413abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa8aa8ddd20, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #5 0x00007fa8ce2581f9 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #6 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a10da3db80) at thread/qthread_unix.cpp:361 #7 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #8 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 6 (Thread 0x7fa8b1e6e700 (LWP 9406)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a10d4b1c30) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a10d3c3920, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x55a10d3c3928, mutex=mutex@entry=0x55a10d3c3920, time=time@entry=18446744073709551615) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8cffea4cd in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x55a10d3c3918) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:245 #5 0x00007fa8cffea4cd in QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x55a10d3c38a0) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:710 #6 0x00007fa8cffea73c in QSGRenderThread::run() (this=0x55a10d3c38a0) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:739 #7 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a10d3c38a0) at thread/qthread_unix.cpp:361 #8 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7fa8b3fff700 (LWP 9403)): #0 0x00007fa8cdf340d1 in poll () at /usr/lib/libc.so.6 #1 0x00007fa8cabcd7c0 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa8cabcd8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa8ce46a079 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa8ac000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fa8ce413abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa8b3ffece0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #5 0x00007fa8ce2581f9 in QThread::exec() (this=this@entry=0x55a10d35f170) at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #6 0x00007fa8cff61feb in QQuickPixmapReader::run() (this=0x55a10d35f170) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/util/qquickpixmapcache.cpp:953 #7 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a10d35f170) at thread/qthread_unix.cpp:361 #8 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 4 (Thread 0x7fa8c1017700 (LWP 9388)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8c1631304 in () at /usr/lib/dri/i965_dri.so #2 0x00007fa8c1631028 in () at /usr/lib/dri/i965_dri.so #3 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #4 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7fa8c35ef700 (LWP 9357)): #0 0x00007fa8cdf340d1 in poll () at /usr/lib/libc.so.6 #1 0x00007fa8cabcd7c0 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa8cabcd8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa8ce46a079 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa8bc000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fa8ce413abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa8c35eed00, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #5 0x00007fa8ce2581f9 in QThread::exec() (this=this@entry=0x55a10d39f8e0) at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #6 0x00007fa8cfc93969 in QQmlThreadPrivate::run() (this=0x55a10d39f8e0) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/qml/qml/ftw/qqmlthread.cpp:148 #7 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x55a10d39f8e0) at thread/qthread_unix.cpp:361 #8 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7fa8c89e1700 (LWP 9325)): #0 0x00007fa8cdf340d1 in poll () at /usr/lib/libc.so.6 #1 0x00007fa8cabcd7c0 in () at /usr/lib/libglib-2.0.so.0 #2 0x00007fa8cabcd8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007fa8ce46a079 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fa8c4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #4 0x00007fa8ce413abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fa8c89e0cf0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #5 0x00007fa8ce2581f9 in QThread::exec() (this=this@entry=0x7fa8ced82080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #6 0x00007fa8ced00ba6 in QDBusConnectionManager::run() (this=0x7fa8ced82080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 #7 0x00007fa8ce2595fc in QThreadPrivate::start(void*) (arg=0x7fa8ced82080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:361 #8 0x00007fa8cd6d7a92 in start_thread () at /usr/lib/libpthread.so.0 #9 0x00007fa8cdf3ecd3 in clone () at /usr/lib/libc.so.6 Thread 1 (Thread 0x7fa8c9474880 (LWP 9252)): #0 0x00007fa8cd6ddbac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0 #1 0x00007fa8ce25f8dc in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x55a1142b9bd0) at thread/qwaitcondition_unix.cpp:146 #2 0x00007fa8ce25f8dc in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x55a1142a4720, deadline=...) at thread/qwaitcondition_unix.cpp:225 #3 0x00007fa8ce25f9ca in QWaitCondition::wait(QMutex*, unsigned long) (this=0x55a1142a4728, mutex=0x55a1142a4720, time=time@entry=18446744073709551615) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68 #4 0x00007fa8cffe89e3 in QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*, bool) (this=this@entry=0x55a10d385230, w=w@entry=0x55a10ebace30, inExpose=inExpose@entry=true) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1217 #5 0x00007fa8cffe9aae in QSGThreadedRenderLoop::handleExposure(QQuickWindow*) (this=0x55a10d385230, window=<optimized out>) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:1011 #6 0x00007fa8cffea11b in QSGThreadedRenderLoop::exposureChanged(QQuickWindow*) (this=0x55a10d385230, window=0x55a10e7f1930) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/scenegraph/qsgthreadedrenderloop.cpp:919 #7 0x00007fa8ce7fdf05 in QWindow::event(QEvent*) (this=this@entry=0x55a10e7f1930, ev=ev@entry=0x7fff44e944b0) at kernel/qwindow.cpp:2255 #8 0x00007fa8d004b9bc in QQuickWindow::event(QEvent*) (this=0x55a10e7f1930, e=0x7fff44e944b0) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-everywhere-src-5.12.4/src/quick/items/qquickwindow.cpp:1687 #9 0x00007fa8d07a352c in PlasmaQuick::Dialog::event(QEvent*) () at /usr/lib/libKF5PlasmaQuick.so.5 #10 0x00007fa8cef6dda4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55a10d2a6720, receiver=receiver@entry=0x55a10e7f1930, e=e@entry=0x7fff44e944b0) at kernel/qapplication.cpp:3737 #11 0x00007fa8cef753c1 in QApplication::notify(QObject*, QEvent*) (this=0x7fff44e948b0, receiver=0x55a10e7f1930, e=0x7fff44e944b0) at kernel/qapplication.cpp:3483 #12 0x00007fa8ce414ef9 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55a10e7f1930, event=0x7fff44e944b0) at ../../include/QtCore/5.12.4/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322 #13 0x00007fa8ce7f4331 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) (e=0x55a1142bd260) at kernel/qguiapplication.cpp:3071 #14 0x00007fa8ce7f45ce in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x55a1142bd260) at kernel/qguiapplication.cpp:1907 #15 0x00007fa8ce7cf55c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=...) at kernel/qwindowsysteminterface.cpp:1151 #16 0x00007fa8c90d26f1 in userEventSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at qeventdispatcher_glib.cpp:74 #17 0x00007fa8cabcb90f in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0 #18 0x00007fa8cabcd869 in () at /usr/lib/libglib-2.0.so.0 #19 0x00007fa8cabcd8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #20 0x00007fa8ce46a079 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55a10d2e4400, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #21 0x00007fa8ce413abc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff44e947a0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140 #22 0x00007fa8ce41bc46 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120 #23 0x000055a10ce56dbe in () #24 0x00007fa8cde67ce3 in __libc_start_main () at /usr/lib/libc.so.6 #25 0x000055a10ce5726e in _start () Detaching from program: /usr/bin/plasmashell, process 9252 [Inferior 1 (process 9252) detached]
Also reproducible on Neon unstable edition. Operating System: KDE neon Unstable Edition KDE Plasma Version: 5.16.80 KDE Frameworks Version: 5.60.0 Qt Version: 5.12.3
I can reproduce this by hitting the Super key a few times. Operating System: Arch Linux KDE Plasma Version: 5.16.0 KDE Frameworks Version: 5.59.0 Qt Version: 5.13.0rc3-1
Created attachment 121068 [details] trace of plasmashell segmentation fault in Plasma 5.15.5 on Wayland with Qt 5.12.4 I saw segmentation faults of plasmashell in wl_proxy_marshal_constructor at wayland-client.c:819 when starting Plasma 5.15.5 on Wayland in Fedora 30. These crashes occurred on startup of one session, and three times in another session. These crashes started right after I updated from Qt 5.12.1 to 5.12.4 from koji along with the dependent Plasma and KF5 rebuilds. drkonqi wouldn't allow me to submit the attached trace which had the following segmentation fault and crashing thread. Application: Plasma (plasmashell), signal: Segmentation fault Using host libthread_db library "/lib64/libthread_db.so.1". futex_wait_cancelable (private=0, expected=0, futex_word=0x564abb0ba9b0) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 88 int err = lll_futex_timed_wait (futex_word, expected, NULL, private); [Current thread is 1 (Thread 0x7f5298ae7d00 (LWP 1518))] Thread 23 (Thread 0x7f522cff7700 (LWP 1744)): [KCrash Handler] #6 wl_proxy_marshal_constructor (proxy=0x0, opcode=opcode@entry=3, interface=0x7f5296fb8980 <wl_callback_interface>) at src/wayland-client.c:819 #7 0x00007f52867430ed in wl_surface_frame (wl_surface=<optimized out>) at ../../include/QtWaylandClient/5.12.4/QtWaylandClient/private/../../../../../src/client/wayland-wayland-client-protocol.h:2798 #8 QtWayland::wl_surface::frame (this=this@entry=0x564aba0561a8) at qwayland-wayland.cpp:1134 #9 0x00007f52867203ab in QtWaylandClient::QWaylandWindow::handleUpdate (this=0x564aba056180) at qwaylandwindow.cpp:1151 #10 0x00007f527f9a2f04 in QtWaylandClient::QWaylandGLContext::swapBuffers (this=0x564aba8448a0, surface=<optimized out>) at ../../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:568 #11 0x00007f5297ac4441 in QOpenGLContext::swapBuffers (this=0x564ab9f4dc10, surface=<optimized out>) at kernel/qopenglcontext.cpp:1115 #12 0x00007f52992e3401 in QSGRenderThread::syncAndRender (this=this@entry=0x7f524801db40) at scenegraph/qsgthreadedrenderloop.cpp:652 #13 0x00007f52992e7168 in QSGRenderThread::run (this=0x7f524801db40) at scenegraph/qsgthreadedrenderloop.cpp:730 #14 0x00007f529750e786 in QThreadPrivate::start (arg=0x7f524801db40) at thread/qthread_unix.cpp:361 #15 0x00007f52969715a2 in start_thread (arg=<optimized out>) at pthread_create.c:486 #16 0x00007f5297184303 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 I think the segmentation fault might've been due to a null pointer dereference since proxy=0x0 in the wl_proxy_marshal_constructor call, and proxy was dereferenced at wayland-client.c:820 in proxy->object.interface->methods[opcode].signature The wl_proxy_marshal_constructor function was as follows 812 WL_EXPORT struct wl_proxy * 813 wl_proxy_marshal_constructor(struct wl_proxy *proxy, uint32_t opcode, 814 const struct wl_interface *interface, ...) 815 { 816 union wl_argument args[WL_CLOSURE_MAX_ARGS]; 817 va_list ap; 818 819 va_start(ap, interface); 820 wl_argument_from_va_list(proxy->object.interface->methods[opcode].signature, 821 args, WL_CLOSURE_MAX_ARGS, ap); 822 va_end(ap); 823 824 return wl_proxy_marshal_array_constructor(proxy, opcode, 825 args, interface); 826 } Functions from qt5-qtwayland at #8-10 and qt5-qtdeclarative lower in the crashing thread might be involved. I've seen a similar segmentation fault in plasmashell with qt 5.12.4 with a different trace which I might make another report for. SOFTWARE/OS VERSIONS Operating System: Fedora 30, 5.1.12 kernel KDE Plasma Version: 5.15.5 KDE Frameworks Version: 5.59.0 Qt Version: 5.12.4 kf5-kwayland-0:5.59.0-2.fc30.x86_64 libwayland-client-0:1.17.0-1.fc30.x86_64 plasma-workspace-0:5.15.5-1.fc30.x86_64 qt5-qtwayland-0:5.12.4-1.fc30.x86_64 The following reports have plasmashell crashes with Qt 5.12.4 with similar traces: https://bugs.kde.org/show_bug.cgi?id=408969 https://bugs.kde.org/show_bug.cgi?id=408973 https://bugs.kde.org/show_bug.cgi?id=409014
*** Bug 409014 has been marked as a duplicate of this bug. ***
Fixed https://codereview.qt-project.org/c/qt/qtwayland/+/265998 Please test
*** Bug 408969 has been marked as a duplicate of this bug. ***
*** Bug 408973 has been marked as a duplicate of this bug. ***
*** Bug 409050 has been marked as a duplicate of this bug. ***
Is similar code needed also for QtWaylandClient::QWaylandAbstractDecoration::contentImage() in addition to QtWaylandClient::QWaylandWindow::handleUpdate()? See https://bugs.kde.org/buglist.cgi?bug_severity=crash&resolution=---&chfieldfrom=90d&longdesc=QtWaylandClient::QWaylandAbstractDecoration::contentImage&longdesc_type=allwordssubstr
>QtWaylandClient::QWaylandAbstractDecoration::contentImage() I don't think so, it's in the main thread so a different issue. Though the fact that we're in deco drawing code is already a sign of something weird. Possibly fixed by https://codereview.qt-project.org/c/qt/qtwayland/+/262587 ?
I requested that David's patch in comment 5 be backported to Qt 5.12.4 in Fedora 30 at https://bugzilla.redhat.com/show_bug.cgi?id=1723017 Jan Grulich added four patches to qt5-qtwayland-5.12.4-2 which didn't appear to include that patch https://src.fedoraproject.org/rpms/qt5-qtwayland/c/287f373520b3c3864a822304fac2b2c2f358ac8a?branch=f30 I've seen the segmentation faults in wl_proxy_marshal_constructor about nine times with qt5-qtwayland-5.12.4-2. Sometimes the desktop colors became grayscale before the crash. plasmashell usually restarted, but I had to start plasmashell from konsole at least three times. I tried to apply David's patch to the Fedora qt5-qtwayland repo I cloned, but I got errors with applying part of the patch as follows. fedpkg --release f30 local ... + /usr/bin/cat /programs/qt/qt5-qtwayland/qtwayland.git-f06a5acd63105b09e5e77de534e5389fdd1dcb20.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch 1 out of 4 hunks FAILED -- saving rejects to file src/client/qwaylandwindow.cpp.rej error: Bad exit status from /var/tmp/rpm-tmp.RzO7c4 (%prep) Bad exit status from /var/tmp/rpm-tmp.RzO7c4 (%prep) RPM build errors: Could not execute local: rpmbuild --define '_sourcedir /programs/qt/qt5-qtwayland' --define '_specdir /programs/qt/qt5-qtwayland' --define '_builddir /programs/qt/qt5-qtwayland' --define '_srcrpmdir /programs/qt/qt5-qtwayland' --define '_rpmdir /programs/qt/qt5-qtwayland' --define 'dist %{?distprefix}.fc30' --define 'fedora 30' --eval '%undefine rhel' --define 'fc30 1' -ba /programs/qt/qt5-qtwayland/qt5-qtwayland.spec | tee .build-5.12.4-5.fc30.log The part of the patch with the error in src/client/qwaylandwindow.cpp.rej was --- src/client/qwaylandwindow.cpp +++ src/client/qwaylandwindow.cpp @@ -201,6 +203,7 @@ void QWaylandWindow::initWindow() void QWaylandWindow::initializeWlSurface() { + QWriteLocker lock(&mSurfaceLock); init(mDisplay->createSurface(static_cast<QtWayland::wl_surface *>(this))); } Could that patch be backported to Qt 5.12? Thanks.
*** Bug 409567 has been marked as a duplicate of this bug. ***
*** Bug 410060 has been marked as a duplicate of this bug. ***
*** Bug 410359 has been marked as a duplicate of this bug. ***
*** Bug 410579 has been marked as a duplicate of this bug. ***
*** Bug 411087 has been marked as a duplicate of this bug. ***
*** Bug 410944 has been marked as a duplicate of this bug. ***
See also https://codereview.qt-project.org/c/qt/qtwayland/+/267381 for Qt 5.12.
We still get many duplicates, even with Qt 5.13.1. https://bugs.kde.org/buglist.cgi?bug_severity=crash&longdesc=QtWaylandClient%3A%3AQWaylandWindow%3A%3AhandleUpdate%205.13.1&longdesc_type=allwordssubstr&query_format=advanced&chfieldfrom=180d&list_id=1678744
Fix is not in 5.13.1 git tag --contains 5d43a686fc3d5f13087a61e8ef216ecbbae0d15e v5.12.5 v5.13.2 v5.14.0-alpha1 v5.14.0-beta1 v5.14.0-beta2
*** Bug 412036 has been marked as a duplicate of this bug. ***
*** Bug 412177 has been marked as a duplicate of this bug. ***
*** Bug 412241 has been marked as a duplicate of this bug. ***
*** Bug 412843 has been marked as a duplicate of this bug. ***
*** Bug 412877 has been marked as a duplicate of this bug. ***
*** Bug 413114 has been marked as a duplicate of this bug. ***
*** Bug 413190 has been marked as a duplicate of this bug. ***
*** Bug 413412 has been marked as a duplicate of this bug. ***
*** Bug 413512 has been marked as a duplicate of this bug. ***
*** Bug 413455 has been marked as a duplicate of this bug. ***
*** Bug 413630 has been marked as a duplicate of this bug. ***
*** Bug 413770 has been marked as a duplicate of this bug. ***
*** Bug 414419 has been marked as a duplicate of this bug. ***
*** Bug 414941 has been marked as a duplicate of this bug. ***
*** Bug 418090 has been marked as a duplicate of this bug. ***