Bug 447939

Summary: Discover crashes in KConfigWatcher::configChanged() taking a screenshot of at the Updates page
Product: [Applications] Discover Reporter: Nate Graham <nate>
Component: discoverAssignee: Dan Leinir Turthra Jensen <leinir>
Status: RESOLVED FIXED    
Severity: crash CC: aleixpol, postix, sam
Priority: NOR Keywords: drkonqi
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 5.24

Description Nate Graham 2022-01-04 15:19:18 UTC
Application: plasma-discover (5.23.80)
 (Compiled from sources)
Qt Version: 5.15.2
Frameworks Version: 5.90.0
Operating System: Linux 5.15.11-200.fc35.x86_64 x86_64
Windowing System: Wayland
Distribution: Fedora Linux 35 (KDE Plasma)
DrKonqi: 5.23.80 [KCrashBackend]

-- Information about the crash:
- What I was doing when the application crashed:
I was taking a screenshot of the Updates page to document Bug 447937. The moment I took the screenshot, Discover crashed.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: Discover (plasma-discover), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  doActivate<false>(QObject*, int, void**) (sender=0x160a940, signal_index=33, argv=0x0) at kernel/qobject.h:132
#6  0x00007f6ecc35c3e9 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff21865300, r=<optimized out>, this=0x160ab70) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#7  doActivate<false>(QObject*, int, void**) (sender=0x117da20, signal_index=3, argv=0x7fff21865300) at kernel/qobject.cpp:3886
#8  0x00007f6ecc357367 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x117da20, m=m@entry=0x7f6ecd3cff60 <KConfigWatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff21865300) at kernel/qobject.cpp:3946
#9  0x00007f6ecd386867 in KConfigWatcher::configChanged(KConfigGroup const&, QList<QByteArray> const&) (this=this@entry=0x117da20, _t1=..., _t2=...) at /home/nate/kde/build/kconfig/src/core/KF5ConfigCore_autogen/EWIEGA46WW/moc_kconfigwatcher.cpp:147
#10 0x00007f6ecd3bcea9 in KConfigWatcher::onConfigChangeNotification(QHash<QString, QList<QByteArray> > const&) (this=this@entry=0x117da20, changes=...) at /home/nate/kde/src/kconfig/src/core/kconfigwatcher.cpp:101
#11 0x00007f6ecd386ba2 in KConfigWatcher::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_a=0x7fff218654a0, _id=1, _c=QMetaObject::InvokeMetaMethod, _o=0x117da20) at /home/nate/kde/build/kconfig/src/core/KF5ConfigCore_autogen/EWIEGA46WW/moc_kconfigwatcher.cpp:88
#12 KConfigWatcher::qt_metacall(QMetaObject::Call, int, void**) (this=0x117da20, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fff218654a0) at /home/nate/kde/build/kconfig/src/core/KF5ConfigCore_autogen/EWIEGA46WW/moc_kconfigwatcher.cpp:133
#13 0x00007f6ecd2fc1eb in QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&, QVector<int> const&, int) (this=<optimized out>, object=<optimized out>, msg=<optimized out>, metaTypes=<optimized out>, slotIdx=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qvarlengtharray.h:190
#14 0x00007f6ecc352f49 in QObject::event(QEvent*) (this=0x117da20, e=0x2cf7cd0) at kernel/qobject.cpp:1314
#15 0x00007f6ecd6e6443 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x117da20, e=0x2cf7cd0) at kernel/qapplication.cpp:3632
#16 0x00007f6ecc3287d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x117da20, event=0x2cf7cd0) at kernel/qcoreapplication.cpp:1064
#17 0x00007f6ecc32bd46 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0xddcc80) at kernel/qcoreapplication.cpp:1821
#18 0x00007f6ecc37a117 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0xe2a050) at kernel/qeventdispatcher_glib.cpp:277
#19 0x00007f6ecad01130 in g_main_dispatch (context=0xe36060) at ../glib/gmain.c:3381
#20 g_main_context_dispatch (context=0xe36060) at ../glib/gmain.c:4099
#21 0x00007f6ecad56208 in g_main_context_iterate.constprop.0 (context=context@entry=0xe36060, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175
#22 0x00007f6ecacfe933 in g_main_context_iteration (context=0xe36060, may_block=1) at ../glib/gmain.c:4240
#23 0x00007f6ecc379bb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0xe28b00, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#24 0x00007f6ecc3271e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff21865940, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#25 0x00007f6ecc32f724 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#26 0x00007f6ecc929c40 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1860
#27 0x00007f6ecd6e63b9 in QApplication::exec() () at kernel/qapplication.cpp:2824
#28 0x0000000000414f56 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nate/kde/src/discover/discover/main.cpp:212
[Inferior 1 (process 3331) detached]

Possible duplicates by query: bug 445815, bug 445199, bug 445000, bug 443745, bug 443362.

Reported using DrKonqi
Comment 1 postix 2022-01-16 20:28:59 UTC
Just experienced the same, Discover was running in the background:

```
Application: Discover (plasma-discover), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  doActivate<false>(QObject*, int, void**) (sender=0x564014990770, signal_index=33, argv=0x0) at kernel/qobject.h:132
#7  0x00007fb05ce1b423 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe8118bd10, r=0x5640121d5210, this=0x56401369d910) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate<false>(QObject*, int, void**) (sender=0x5640121d5210, signal_index=3, argv=0x7ffe8118bd10) at kernel/qobject.cpp:3886
#9  0x00007fb05ce148ef in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7fb05de1e260 <KConfigWatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe8118bd10) at kernel/qobject.cpp:3946
#10 0x00007fb05dddda67 in KConfigWatcher::configChanged(KConfigGroup const&, QList<QByteArray> const&) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>) at /usr/src/debug/kconfig-5.90.0-1.1.x86_64/build/src/core/KF5ConfigCore_autogen/EWIEGA46WW/moc_kconfigwatcher.cpp:147
#11 0x00007fb05de0a5f9 in KConfigWatcher::onConfigChangeNotification(QHash<QString, QList<QByteArray> > const&) (this=0x5640121d5210, changes=...) at /usr/src/debug/kconfig-5.90.0-1.1.x86_64/src/core/kconfigwatcher.cpp:101
#12 0x00007fb05dde77e2 in KConfigWatcher::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_a=0x7ffe8118bec0, _id=1, _c=QMetaObject::InvokeMetaMethod, _o=0x5640121d5210) at /usr/src/debug/kconfig-5.90.0-1.1.x86_64/build/src/core/KF5ConfigCore_autogen/EWIEGA46WW/moc_kconfigwatcher.cpp:88
#13 KConfigWatcher::qt_metacall(QMetaObject::Call, int, void**) (this=0x5640121d5210, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7ffe8118bec0) at /usr/src/debug/kconfig-5.90.0-1.1.x86_64/build/src/core/KF5ConfigCore_autogen/EWIEGA46WW/moc_kconfigwatcher.cpp:133
#14 0x00007fb05dd536db in QDBusConnectionPrivate::deliverCall(QObject*, int, QDBusMessage const&, QVector<int> const&, int) (this=<optimized out>, object=<optimized out>, msg=<optimized out>, metaTypes=<optimized out>, slotIdx=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qvarlengtharray.h:190
#15 0x00007fb05ce113ce in QObject::event(QEvent*) (this=0x5640121d5210, e=0x5640142f06b0) at kernel/qobject.cpp:1314
#16 0x00007fb05e03ba7f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x5640121d5210, e=0x5640142f06b0) at kernel/qapplication.cpp:3632
#17 0x00007fb05cde4dba in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x5640121d5210, event=0x5640142f06b0) at kernel/qcoreapplication.cpp:1064
#18 0x00007fb05cde7e07 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x564011e39380) at kernel/qcoreapplication.cpp:1821
#19 0x00007fb05ce3cc13 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0x564011f27b60) at kernel/qeventdispatcher_glib.cpp:277
#20 0x00007fb05b5cfd9f in g_main_dispatch (context=0x7fb050005000) at ../glib/gmain.c:3381
#21 g_main_context_dispatch (context=0x7fb050005000) at ../glib/gmain.c:4099
#22 0x00007fb05b5d0128 in g_main_context_iterate (context=context@entry=0x7fb050005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175
#23 0x00007fb05b5d01df in g_main_context_iteration (context=0x7fb050005000, may_block=1) at ../glib/gmain.c:4240
#24 0x00007fb05ce3c294 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x564011f23670, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#25 0x00007fb05cde37bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe8118c320, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#26 0x00007fb05cdebaa0 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#27 0x00007fb05d23523c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867
#28 0x00007fb05e03b9f5 in QApplication::exec() () at kernel/qapplication.cpp:2824
#29 0x00005640114eef8c in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/discover-5.23.5-1.1.x86_64/discover/main.cpp:213
[Inferior 1 (process 18563) detached]
```

# System
Operating System: openSUSE Tumbleweed 20220114
KDE Plasma Version: 5.23.5
KDE Frameworks Version: 5.90.0
Qt Version: 5.15.2
Comment 2 Aleix Pol 2022-01-17 19:26:54 UTC
Git commit 14190aea46ea2c3f36f0734bfc537198c173b7e3 by Aleix Pol.
Committed on 17/01/2022 at 19:26.
Pushed by apol into branch 'master'.

Only check for configuration changes when the ones we care about change

M  +6    -1    libdiscover/resources/ResourcesUpdatesModel.cpp

https://invent.kde.org/plasma/discover/commit/14190aea46ea2c3f36f0734bfc537198c173b7e3
Comment 3 Aleix Pol 2022-01-17 19:27:06 UTC
Git commit 5f24528d386f879a0dada982b4dcb3b7c56b2051 by Aleix Pol Gonzalez, on behalf of Aleix Pol.
Committed on 17/01/2022 at 19:27.
Pushed by apol into branch 'Plasma/5.24'.

Only check for configuration changes when the ones we care about change


(cherry picked from commit 14190aea46ea2c3f36f0734bfc537198c173b7e3)

M  +6    -1    libdiscover/resources/ResourcesUpdatesModel.cpp

https://invent.kde.org/plasma/discover/commit/5f24528d386f879a0dada982b4dcb3b7c56b2051