Bug 408709

Summary: system settings crashed on Wayland when I was switching between the sections of "Desktop behavior"
Product: [Applications] systemsettings Reporter: Patrick Silva <bugseforuns>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED UPSTREAM    
Severity: crash CC: aspotashev, kde, till2.schaefer
Priority: NOR Keywords: drkonqi
Version: 5.16.90   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Patrick Silva 2019-06-14 21:28:18 UTC
Application: systemsettings5 (5.16.80)

Qt Version: 5.12.3
Frameworks Version: 5.60.0
Operating System: Linux 4.18.0-21-generic x86_64
Distribution: KDE neon Unstable Edition

-- Information about the crash:
- What I was doing when the application crashed:
I opened system settings > desktop behavior
and system settings crashed after I click almost all sections in the left side,
from top to bottom. I think that system settings crashed when I reached "Virtual desktops".

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fea1a421680 (LWP 13977))]

Thread 9 (Thread 0x7fe9ca81a700 (LWP 13991)):
[KCrash Handler]
#6  0x00007fea08f98cf9 in wl_proxy_marshal () from /usr/lib/x86_64-linux-gnu/libwayland-client.so.0
#7  0x00007fea0941e29a in wl_surface_damage (height=<optimized out>, width=<optimized out>, y=<optimized out>, x=<optimized out>, wl_surface=<optimized out>) at ../../include/QtWaylandClient/5.12.3/QtWaylandClient/private/../../../../../src/client/wayland-wayland-client-protocol.h:2753
#8  QtWayland::wl_surface::damage (this=<optimized out>, x=<optimized out>, y=<optimized out>, width=<optimized out>, height=<optimized out>) at qwayland-wayland.cpp:1124
#9  0x00007fea09401474 in QtWaylandClient::QWaylandWindow::damage (this=<optimized out>, rect=...) at qwaylandwindow.cpp:565
#10 0x00007fea0940ba69 in QtWaylandClient::QWaylandAbstractDecoration::contentImage (this=0x7fe9c4034250) at qwaylandabstractdecoration.cpp:134
#11 0x00007fe9ffdf8778 in QtWaylandClient::DecorationsBlitter::blit (window=0x563761e53a00, this=<optimized out>) at ../../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:198
#12 QtWaylandClient::QWaylandGLContext::swapBuffers (this=0x563761018410, surface=<optimized out>) at ../../../../hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp:556
#13 0x00007fea16b07dbf in QOpenGLContext::swapBuffers (this=0x563761e88360, surface=<optimized out>) at kernel/qopenglcontext.cpp:1115
#14 0x00007fea14393ed9 in QSGRenderThread::syncAndRender (this=this@entry=0x5637620b0060) at scenegraph/qsgthreadedrenderloop.cpp:652
#15 0x00007fea14397ae8 in QSGRenderThread::run (this=0x5637620b0060) at scenegraph/qsgthreadedrenderloop.cpp:730
#16 0x00007fea16097c72 in QThreadPrivate::start (arg=0x5637620b0060) at thread/qthread_unix.cpp:361
#17 0x00007fea10da86db in start_thread (arg=0x7fe9ca81a700) at pthread_create.c:463
#18 0x00007fea1599788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7fe9d94d8700 (LWP 13986)):
#0  QMutex::unlock (this=this@entry=0x56375d79edd0) at thread/qmutex.cpp:335
#1  0x00007fea162cdcdd in QMutexLocker::unlock (this=<synthetic pointer>) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:219
#2  QMutexLocker::~QMutexLocker (this=<synthetic pointer>, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:213
#3  QThreadData::canWaitLocked (this=0x56375d79eda0) at ../../include/QtCore/5.12.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:269
#4  postEventSourcePrepare (s=0x7fe9d00047a0, timeout=0x7fe9d94d7b74) at kernel/qeventdispatcher_glib.cpp:259
#5  0x00007fea0e9e9a28 in g_main_context_prepare () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007fea0e9ea3fb in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007fea0e9ea5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007fea162cddcb in QEventDispatcherGlib::processEvents (this=0x7fe9d0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#9  0x00007fea1626f03a in QEventLoop::exec (this=this@entry=0x7fe9d94d7d40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#10 0x00007fea160964ca in QThread::exec (this=this@entry=0x56375d79ec60) at thread/qthread.cpp:531
#11 0x00007fea13e4c115 in QQmlThreadPrivate::run (this=0x56375d79ec60) at qml/ftw/qqmlthread.cpp:148
#12 0x00007fea16097c72 in QThreadPrivate::start (arg=0x56375d79ec60) at thread/qthread_unix.cpp:361
#13 0x00007fea10da86db in start_thread (arg=0x7fe9d94d8700) at pthread_create.c:463
#14 0x00007fea1599788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fe9dab83700 (LWP 13985)):
#0  0x00007fea1598abf9 in __GI___poll (fds=0x7fe9cc004e00, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fea0e9ea4c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fea0e9ea5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fea162cddcb in QEventDispatcherGlib::processEvents (this=0x7fe9cc000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007fea1626f03a in QEventLoop::exec (this=this@entry=0x7fe9dab82d40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fea160964ca in QThread::exec (this=this@entry=0x56375d66a3a0) at thread/qthread.cpp:531
#6  0x00007fea13e4c115 in QQmlThreadPrivate::run (this=0x56375d66a3a0) at qml/ftw/qqmlthread.cpp:148
#7  0x00007fea16097c72 in QThreadPrivate::start (arg=0x56375d66a3a0) at thread/qthread_unix.cpp:361
#8  0x00007fea10da86db in start_thread (arg=0x7fe9dab83700) at pthread_create.c:463
#9  0x00007fea1599788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fe9dbfff700 (LWP 13984)):
#0  0x00007fea0ea30379 in g_mutex_lock () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fea0e9e9eec in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fea0e9ea470 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fea0e9ea5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fea162cddcb in QEventDispatcherGlib::processEvents (this=0x7fe9d4000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#5  0x00007fea1626f03a in QEventLoop::exec (this=this@entry=0x7fe9dbffed40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007fea160964ca in QThread::exec (this=this@entry=0x56375d3a1760) at thread/qthread.cpp:531
#7  0x00007fea13e4c115 in QQmlThreadPrivate::run (this=0x56375d3a1760) at qml/ftw/qqmlthread.cpp:148
#8  0x00007fea16097c72 in QThreadPrivate::start (arg=0x56375d3a1760) at thread/qthread_unix.cpp:361
#9  0x00007fea10da86db in start_thread (arg=0x7fe9dbfff700) at pthread_create.c:463
#10 0x00007fea1599788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fe9e1656700 (LWP 13983)):
#0  0x00007fea1598abf9 in __GI___poll (fds=0x7fe9dc004a00, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fea0e9ea4c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fea0e9ea5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fea162cddcb in QEventDispatcherGlib::processEvents (this=0x7fe9dc000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007fea1626f03a in QEventLoop::exec (this=this@entry=0x7fe9e1655d40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fea160964ca in QThread::exec (this=this@entry=0x56375d363f30) at thread/qthread.cpp:531
#6  0x00007fea13e4c115 in QQmlThreadPrivate::run (this=0x56375d363f30) at qml/ftw/qqmlthread.cpp:148
#7  0x00007fea16097c72 in QThreadPrivate::start (arg=0x56375d363f30) at thread/qthread_unix.cpp:361
#8  0x00007fea10da86db in start_thread (arg=0x7fe9e1656700) at pthread_create.c:463
#9  0x00007fea1599788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fe9edd06700 (LWP 13980)):
#0  0x00007fea1598abf9 in __GI___poll (fds=0x7fe9e8004e00, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fea0e9ea4c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fea0e9ea5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fea162cddcb in QEventDispatcherGlib::processEvents (this=0x7fe9e8000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007fea1626f03a in QEventLoop::exec (this=this@entry=0x7fe9edd05d40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fea160964ca in QThread::exec (this=this@entry=0x56375a285df0) at thread/qthread.cpp:531
#6  0x00007fea13e4c115 in QQmlThreadPrivate::run (this=0x56375a285df0) at qml/ftw/qqmlthread.cpp:148
#7  0x00007fea16097c72 in QThreadPrivate::start (arg=0x56375a285df0) at thread/qthread_unix.cpp:361
#8  0x00007fea10da86db in start_thread (arg=0x7fe9edd06700) at pthread_create.c:463
#9  0x00007fea1599788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fe9fc523700 (LWP 13979)):
#0  0x00007fea10dae9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x563759f60f18) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x563759f60ec8, cond=0x563759f60ef0) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x563759f60ef0, mutex=0x563759f60ec8) at pthread_cond_wait.c:655
#3  0x00007fe9fda03dcb in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fe9fda03af7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fea10da86db in start_thread (arg=0x7fe9fc523700) at pthread_create.c:463
#6  0x00007fea1599788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fea05412700 (LWP 13978)):
#0  0x00007fea1598abf9 in __GI___poll (fds=0x7fea00003ce0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fea0e9ea4c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fea0e9ea5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fea162cddcb in QEventDispatcherGlib::processEvents (this=0x7fea00000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007fea1626f03a in QEventLoop::exec (this=this@entry=0x7fea05411d30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007fea160964ca in QThread::exec (this=this@entry=0x7fea169b3d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:531
#6  0x00007fea1673c015 in QDBusConnectionManager::run (this=0x7fea169b3d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#7  0x00007fea16097c72 in QThreadPrivate::start (arg=0x7fea169b3d80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:361
#8  0x00007fea10da86db in start_thread (arg=0x7fea05412700) at pthread_create.c:463
#9  0x00007fea1599788f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fea1a421680 (LWP 13977)):
#0  0x00007fea10dae9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5637620b1564) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5637620b1510, cond=0x5637620b1538) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x5637620b1538, mutex=0x5637620b1510) at pthread_cond_wait.c:655
#3  0x00007fea1609edbb in QWaitConditionPrivate::wait (deadline=..., this=0x5637620b1510) at thread/qwaitcondition_unix.cpp:146
#4  QWaitCondition::wait (this=<optimized out>, mutex=0x5637620b00a0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#5  0x00007fea1609f0c9 in QWaitCondition::wait (this=0x5637620b00a8, mutex=0x5637620b00a0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:208
#6  0x00007fea14394a6d in QSGThreadedRenderLoop::polishAndSync (this=this@entry=0x56375d668c00, w=<optimized out>, w@entry=0x563761e2ad80, inExpose=inExpose@entry=true) at scenegraph/qsgthreadedrenderloop.cpp:1211
#7  0x00007fea14396fd5 in QSGThreadedRenderLoop::handleExposure (this=this@entry=0x56375d668c00, window=window@entry=0x56375d35d0b0) at scenegraph/qsgthreadedrenderloop.cpp:1005
#8  0x00007fea14397659 in QSGThreadedRenderLoop::exposureChanged (this=0x56375d668c00, window=0x56375d35d0b0) at scenegraph/qsgthreadedrenderloop.cpp:916
#9  0x00007fea16ad4655 in QWindow::event (this=this@entry=0x56375d35d0b0, ev=ev@entry=0x7fff1de0ed40) at kernel/qwindow.cpp:2341
#10 0x00007fea143f6025 in QQuickWindow::event (this=0x56375d35d0b0, e=0x7fff1de0ed40) at items/qquickwindow.cpp:1675
#11 0x00007fea172fb65c in QApplicationPrivate::notify_helper (this=this@entry=0x563759e0d8e0, receiver=receiver@entry=0x56375d35d0b0, e=e@entry=0x7fff1de0ed40) at kernel/qapplication.cpp:3736
#12 0x00007fea17302b90 in QApplication::notify (this=0x7fff1de0f100, receiver=0x56375d35d0b0, e=0x7fff1de0ed40) at kernel/qapplication.cpp:3483
#13 0x00007fea16270d18 in QCoreApplication::notifyInternal2 (receiver=0x56375d35d0b0, event=0x7fff1de0ed40) at kernel/qcoreapplication.cpp:1060
#14 0x00007fea16270efe in QCoreApplication::sendSpontaneousEvent (receiver=receiver@entry=0x56375d35d0b0, event=event@entry=0x7fff1de0ed40) at kernel/qcoreapplication.cpp:1462
#15 0x00007fea16aca19a in QGuiApplicationPrivate::processExposeEvent (e=0x563761eabde0) at kernel/qguiapplication.cpp:3066
#16 0x00007fea16aca3ed in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x563761eabde0) at kernel/qguiapplication.cpp:1902
#17 0x00007fea16aa2b4b in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1151
#18 0x00007fea0942e000 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /usr/lib/x86_64-linux-gnu/libQt5WaylandClient.so.5
#19 0x00007fea0e9ea317 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007fea0e9ea550 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007fea0e9ea5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007fea162cddaf in QEventDispatcherGlib::processEvents (this=0x563759e41120, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#23 0x00007fea1626f03a in QEventLoop::exec (this=this@entry=0x7fff1de0f020, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#24 0x00007fea16278170 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1363
#25 0x000056375936e218 in ?? ()
#26 0x00007fea15897b97 in __libc_start_main (main=0x56375936de30, argc=1, argv=0x7fff1de0f248, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff1de0f238) at ../csu/libc-start.c:310
#27 0x000056375936e29a in _start ()

Reported using DrKonqi
Comment 1 Christoph Feck 2019-06-27 15:20:58 UTC
*** Bug 409252 has been marked as a duplicate of this bug. ***
Comment 2 Patrick Silva 2019-07-21 22:11:41 UTC
exact steps to reproduce this crash:
open system settings > desktop behavior
click on "Activities" section
switch to any other section... crash
Comment 3 Patrick Silva 2019-09-19 19:01:11 UTC
on Plasma 5.17 beta system settings does not crash when I switch from "Activities" to another section of "Desktop behavior". It freezes instead.

Operating System: Arch Linux 
KDE Plasma Version: 5.16.90
KDE Frameworks Version: 5.62.0
Qt Version: 5.13.1
Comment 4 David Edmundson 2019-09-19 23:57:51 UTC
Fixed (including the deadlock) in newer Qt
Comment 5 Patrick Silva 2019-10-11 11:35:42 UTC
(In reply to Patrick Silva from comment #3)
> on Plasma 5.17 beta system settings does not crash when I switch from
> "Activities" to another section of "Desktop behavior". It freezes instead.
> 
same thing after upgrade to Qt 5.14 beta1.

Operating System: Arch Linux 
KDE Plasma Version: 5.16.90
KDE Frameworks Version: 5.62.0
Qt Version: 5.14.0 beta1