Bug 405023

Summary: systemsettings crashes when double clicking an item in icon view
Product: [Applications] systemsettings Reporter: Jaak Ristioja <jaak>
Component: iconviewAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED WORKSFORME    
Severity: crash CC: kde, nate
Priority: NOR Keywords: drkonqi
Version: 5.15.2   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Screenshot of transparent window

Description Jaak Ristioja 2019-03-03 07:54:13 UTC
Application: systemsettings5 (5.15.2)
 (Compiled from sources)
Qt Version: 5.12.1
Frameworks Version: 5.55.0
Operating System: Linux 4.20.13-gentoo x86_64
Distribution: "Gentoo Base System release 2.6"

-- Information about the crash:
- What I was doing when the application crashed:

I think I upgraded qt/kde/plasma before a reboot.

1) Started "systemsettings5"
2) Double clicked on "Workspace theme" or "Desktop Behavior"

- Unusual behavior I noticed:

Desktop wallpaper was missing on login, and when I right-clicked the desktop and chose "Configure Desktop", a window titled "Desktop Settings - Plasma" with literally no contents appears, only a border/frame. So that when something behind that window redraws itself, e.g. when I'm typing this text, it also appears within the border, i.e. the window is completely transparent.

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f783ac1ac40 (LWP 3371))]

Thread 5 (Thread 0x7f780d9ef700 (LWP 3376)):
#0  0x00007f783612ab10 in __GI___libc_read (fd=15, buf=buf@entry=0x7f780d9eeb90, nbytes=nbytes@entry=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007f782f703b40 in read (__nbytes=16, __buf=0x7f780d9eeb90, __fd=<optimized out>) at /usr/include/bits/unistd.h:44
#2  g_wakeup_acknowledge (wakeup=0x7f78180039a0) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gwakeup.c:210
#3  0x00007f782f6b3977 in g_main_context_check (context=context@entry=0x7f7808000bf0, max_priority=2147483647, fds=fds@entry=0x7f7808004a00, n_fds=n_fds@entry=1) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3680
#4  0x00007f782f6b3e30 in g_main_context_iterate (context=context@entry=0x7f7808000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3899
#5  0x00007f782f6b3fcc in g_main_context_iteration (context=0x7f7808000bf0, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3963
#6  0x00007f7836acc5cb in QEventDispatcherGlib::processEvents (this=0x7f7808000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#7  0x00007f7836a7408b in QEventLoop::exec (this=this@entry=0x7f780d9eedc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#8  0x00007f78368cf546 in QThread::exec (this=this@entry=0x561f98824000) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#9  0x00007f783476ec95 in QQmlThreadPrivate::run (this=0x561f98824000) at qml/ftw/qqmlthread.cpp:148
#10 0x00007f78368d0884 in QThreadPrivate::start (arg=0x561f98824000) at thread/qthread_unix.cpp:361
#11 0x00007f7831b0296a in start_thread (arg=0x7f780d9ef700) at pthread_create.c:463
#12 0x00007f783613af4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f781e38c700 (LWP 3374)):
#0  0x00007f7831b094fc in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x561f9872a928) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x561f9872a8d8, cond=0x561f9872a900) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x561f9872a900, mutex=0x561f9872a8d8) at pthread_cond_wait.c:655
#3  0x00007f781ebb76bb in cnd_wait (mtx=0x561f9872a8d8, cond=0x561f9872a900) at ../mesa-18.2.8/src/../include/c11/threads_posix.h:155
#4  util_queue_thread_func (input=input@entry=0x561f986a9c50) at ../mesa-18.2.8/src/util/u_queue.c:256
#5  0x00007f781ebb7347 in impl_thrd_routine (p=<optimized out>) at ../mesa-18.2.8/src/../include/c11/threads_posix.h:87
#6  0x00007f7831b0296a in start_thread (arg=0x7f781e38c700) at pthread_create.c:463
#7  0x00007f783613af4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f7825171700 (LWP 3373)):
#0  0x00007f783612ab10 in __GI___libc_read (fd=7, buf=buf@entry=0x7f7825170b80, nbytes=nbytes@entry=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007f782f703b40 in read (__nbytes=16, __buf=0x7f7825170b80, __fd=<optimized out>) at /usr/include/bits/unistd.h:44
#2  g_wakeup_acknowledge (wakeup=0x561f9858dfb0) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gwakeup.c:210
#3  0x00007f782f6b3977 in g_main_context_check (context=context@entry=0x7f7818000bf0, max_priority=2147483647, fds=fds@entry=0x7f7818004db0, n_fds=n_fds@entry=1) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3680
#4  0x00007f782f6b3e30 in g_main_context_iterate (context=context@entry=0x7f7818000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3899
#5  0x00007f782f6b3fcc in g_main_context_iteration (context=0x7f7818000bf0, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3963
#6  0x00007f7836acc5cb in QEventDispatcherGlib::processEvents (this=0x7f7818000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#7  0x00007f7836a7408b in QEventLoop::exec (this=this@entry=0x7f7825170db0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#8  0x00007f78368cf546 in QThread::exec (this=this@entry=0x7f78371ed060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#9  0x00007f7836f5edc5 in QDBusConnectionManager::run (this=0x7f78371ed060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#10 0x00007f78368d0884 in QThreadPrivate::start (arg=0x7f78371ed060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:361
#11 0x00007f7831b0296a in start_thread (arg=0x7f7825171700) at pthread_create.c:463
#12 0x00007f783613af4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f7826b49700 (LWP 3372)):
#0  0x00007f783612f413 in __GI___poll (fds=fds@entry=0x7f7826b48ce8, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f78316c18f7 in poll (__timeout=-1, __nfds=1, __fds=0x7f7826b48ce8) at /usr/include/bits/poll2.h:46
#2  _xcb_conn_wait (c=c@entry=0x561f98542c80, cond=cond@entry=0x561f98542cc0, vector=vector@entry=0x0, count=count@entry=0x0) at /var/tmp/portage/x11-libs/libxcb-1.13.1/work/libxcb-1.13.1/src/xcb_conn.c:479
#3  0x00007f78316c3a1a in xcb_wait_for_event (c=c@entry=0x561f98542c80) at /var/tmp/portage/x11-libs/libxcb-1.13.1/work/libxcb-1.13.1/src/xcb_in.c:697
#4  0x00007f7828cf6e08 in QXcbEventQueue::run (this=0x561f9854ed50) at qxcbeventqueue.cpp:228
#5  0x00007f78368d0884 in QThreadPrivate::start (arg=0x561f9854ed50) at thread/qthread_unix.cpp:361
#6  0x00007f7831b0296a in start_thread (arg=0x7f7826b49700) at pthread_create.c:463
#7  0x00007f783613af4f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f783ac1ac40 (LWP 3371)):
[KCrash Handler]
#7  0x00007f7836aa1fa8 in qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > > (ptr=...) at kernel/qobject.cpp:3954
#8  QObject::d_func (this=<optimized out>) at kernel/qobject.h:121
#9  QObject::property (this=0x0, name=name@entry=0x7f783a648a61 "pageStack") at kernel/qobject.cpp:3955
#10 0x00007f783a624df9 in KCModuleQml::KCModuleQml (this=0x561f98819320, configModule=<optimized out>, parent=<optimized out>, args=...) at /var/tmp/portage/kde-frameworks/kcmutils-5.55.0/work/kcmutils-5.55.0/src/kcmoduleqml.cpp:160
#11 0x00007f783a622328 in KCModuleLoader::loadModule (mod=..., report=report@entry=KCModuleLoader::Inline, parent=0x561f989033c0, args=...) at /var/tmp/portage/kde-frameworks/kcmutils-5.55.0/work/kcmutils-5.55.0/src/kcmoduleloader.cpp:106
#12 0x00007f783a62a72f in KCModuleProxyPrivate::loadModule (this=this@entry=0x561f98768ae0) at /var/tmp/portage/kde-frameworks/kcmutils-5.55.0/work/kcmutils-5.55.0/src/kcmoduleproxy.cpp:102
#13 0x00007f783a62b268 in KCModuleProxy::realModule (this=this@entry=0x561f989033c0) at /var/tmp/portage/kde-frameworks/kcmutils-5.55.0/work/kcmutils-5.55.0/src/kcmoduleproxy.cpp:75
#14 0x00007f783a868335 in ModuleView::updatePageIconHeader (this=this@entry=0x561f987c1f50, page=page@entry=0x561f98cdc150, light=light@entry=true) at /var/tmp/portage/kde-plasma/systemsettings-5.15.2/work/systemsettings-5.15.2/core/ModuleView.cpp:223
#15 0x00007f783a86905c in ModuleView::addModule (this=this@entry=0x561f987c1f50, module=0x561f9886a3f8) at /var/tmp/portage/kde-plasma/systemsettings-5.15.2/work/systemsettings-5.15.2/core/ModuleView.cpp:200
#16 0x00007f783a869473 in ModuleView::loadModule (this=0x561f987c1f50, menuItem=...) at /var/tmp/portage/kde-plasma/systemsettings-5.15.2/work/systemsettings-5.15.2/core/ModuleView.cpp:155
#17 0x00007f7836aa0acf in QtPrivate::QSlotObjectBase::call (a=0x7ffcecfcd3f0, r=0x561f989c6b40, this=0x561f988ae7e0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#18 QMetaObject::activate (sender=0x561f98821800, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3770
#19 0x00007f7837d125e5 in QAbstractItemView::activated (this=this@entry=0x561f98821800, _t1=...) at .moc/moc_qabstractitemview.cpp:671
#20 0x00007f7837d1f011 in QAbstractItemView::mouseDoubleClickEvent (this=0x561f98821800, event=0x7ffcecfcdb90) at itemviews/qabstractitemview.cpp:1964
#21 0x00007f7837b0bb9f in QWidget::event (this=this@entry=0x561f98821800, event=event@entry=0x7ffcecfcdb90) at kernel/qwidget.cpp:8921
#22 0x00007f7837bae96e in QFrame::event (this=0x561f98821800, e=0x7ffcecfcdb90) at widgets/qframe.cpp:550
#23 0x00007f7837d1ec23 in QAbstractItemView::viewportEvent (this=0x561f98821800, event=0x7ffcecfcdb90) at itemviews/qabstractitemview.cpp:1750
#24 0x00007f7836a75486 in QCoreApplicationPrivate::sendThroughObjectEventFilters (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.cpp:1186
#25 QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x561f98821840, event=event@entry=0x7ffcecfcdb90) at kernel/qcoreapplication.cpp:1175
#26 0x00007f7837acbc71 in QApplicationPrivate::notify_helper (this=this@entry=0x561f985320d0, receiver=receiver@entry=0x561f98821840, e=e@entry=0x7ffcecfcdb90) at kernel/qapplication.cpp:3745
#27 0x00007f7837ad33af in QApplication::notify (this=<optimized out>, receiver=0x561f98821840, e=0x7ffcecfcdb90) at kernel/qapplication.cpp:3214
#28 0x00007f7836a75651 in QCoreApplication::notifyInternal2 (receiver=0x561f98821840, event=0x7ffcecfcdb90) at kernel/qcoreapplication.cpp:1060
#29 0x00007f7837ad26ae in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x561f98821840, event=event@entry=0x7ffcecfcdb90, alienWidget=0x561f98821840, nativeWidget=0x561f98597940, buttonDown=buttonDown@entry=0x7f78381c7310 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2700
#30 0x00007f7837b257cf in QWidgetWindow::handleMouseEvent (this=0x561f985ed110, event=0x7ffcecfce070) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/g++-v8/bits/atomic_base.h:390
#31 0x00007f7837b2876f in QWidgetWindow::event (event=0x7ffcecfce070, this=0x561f985ed110) at kernel/qwidgetwindow.cpp:281
#32 QWidgetWindow::event (this=0x561f985ed110, event=0x7ffcecfce070) at kernel/qwidgetwindow.cpp:224
#33 0x00007f7837acbc81 in QApplicationPrivate::notify_helper (this=this@entry=0x561f985320d0, receiver=receiver@entry=0x561f985ed110, e=e@entry=0x7ffcecfce070) at kernel/qapplication.cpp:3753
#34 0x00007f7837ad3168 in QApplication::notify (this=0x7ffcecfce4a0, receiver=0x561f985ed110, e=0x7ffcecfce070) at kernel/qapplication.cpp:3500
#35 0x00007f7836a75651 in QCoreApplication::notifyInternal2 (receiver=0x561f985ed110, event=0x7ffcecfce070) at kernel/qcoreapplication.cpp:1060
#36 0x00007f783731872e in QGuiApplicationPrivate::processMouseEvent (e=0x561f985ea300) at kernel/qguiapplication.cpp:2146
#37 0x00007f7837319bc5 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x561f985ea300) at kernel/qguiapplication.cpp:1837
#38 0x00007f78372f3baa in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1071
#39 0x00007f7828cf833a in xcbSourceDispatch (source=source@entry=0x561f9857b270) at qxcbeventdispatcher.cpp:105
#40 0x00007f782f6b3cd7 in g_main_dispatch (context=0x7f7820004ff0) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3176
#41 g_main_context_dispatch (context=context@entry=0x7f7820004ff0) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3829
#42 0x00007f782f6b3f10 in g_main_context_iterate (context=context@entry=0x7f7820004ff0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3902
#43 0x00007f782f6b3fcc in g_main_context_iteration (context=0x7f7820004ff0, may_block=may_block@entry=1) at /var/tmp/portage/dev-libs/glib-2.56.4/work/glib-2.56.4/glib/gmain.c:3963
#44 0x00007f7836acc5b3 in QEventDispatcherGlib::processEvents (this=0x561f985362b0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#45 0x00007f7836a7408b in QEventLoop::exec (this=this@entry=0x7ffcecfce3c0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#46 0x00007f7836a7c992 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#47 0x0000561f967aff09 in main (argc=<optimized out>, argv=<optimized out>) at /var/tmp/portage/kde-plasma/systemsettings-5.15.2/work/systemsettings-5.15.2/app/main.cpp:71
[Inferior 1 (process 3371) detached]

Reported using DrKonqi
Comment 1 Jaak Ristioja 2019-03-03 07:57:35 UTC
Created attachment 118501 [details]
Screenshot of transparent window
Comment 2 David Edmundson 2019-11-02 08:20:45 UTC
Means the internal component ApplicationItem failed to compile, which almost certainly means you were missing a dependency. Especially as you're on gentoo.

Please check you have Kirigami 2.4 installed, and reopen if you have. In the meantime I'll add a check for the case you hit - but all I can do is make it fail more explicitly
Comment 3 Jaak Ristioja 2019-11-02 09:25:27 UTC
Kirigami has always been installed, and was at version 5.55.0 when this crash occurred.

Since it has been a while and Gentoo is a rolling-release distribution, so I'm already using sytemsettings 5.17.1 and Kirigami 5.63.0, and I'm now unable to reproduce this crash.
Comment 4 David Edmundson 2019-11-07 18:11:35 UTC
Git commit 6f8610a1431aea00e7d6d3a713e9d2bd0f2ef104 by David Edmundson.
Committed on 07/11/2019 at 18:11.
Pushed by davidedmundson into branch 'master'.

Add guard for missing kirigami

Summary:
We rely on the component being created correctly later in the module,
better to fatal with a useful messgae than crash.

Test Plan: Regular KCM still loaded fine

Reviewers: #plasma, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D25115

M  +4    -0    src/kcmoduleqml.cpp

https://commits.kde.org/kcmutils/6f8610a1431aea00e7d6d3a713e9d2bd0f2ef104
Comment 5 David Edmundson 2019-11-15 11:52:24 UTC
>and I'm now unable to reproduce this crash.