Bug 455132

Summary: Discover crashes in FwupdSourcesBackend::proceed()
Product: [Applications] Discover Reporter: omybbs.kuiuc
Component: fwupd BackendAssignee: Abhijeet Sharma <sharma.abhijeet2096>
Status: RESOLVED FIXED    
Severity: crash CC: aleixpol, leinir, nate
Priority: NOR Keywords: drkonqi
Version: 5.24.5   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 5.24.7
Sentry Crash Report:

Description omybbs.kuiuc 2022-06-10 14:08:15 UTC
Application: plasma-discover (5.24.5)

Qt Version: 5.15.2
Frameworks Version: 5.94.0
Operating System: Linux 5.18.1-1-default x86_64
Windowing System: Wayland
Distribution: "openSUSE Tumbleweed"
DrKonqi: 5.24.5 [KCrashBackend]

-- Information about the crash:
- What I was doing when the application crashed:
Updating flatpaks on my openSUSE installation via Discover. The updating progress is always failing and I tried multiple times. Things didn't change a bit until I updated the flatpaks under CLI and found out that some of the apps I installed are using outdated runtimes, and flatpak CLI asks me to confirm if I want to keep these apps. Seems like Discover flatpak backend can't handle such "events"?

- Unusual behavior I noticed:
The updating progress is unnatrually slow, and all the updatable items reappeared even after I updated them. Discover either crashes or just return to the initial state (all flatpak apps not updated)

Also worth noticing, Discover keeps poping up error messages about things like "too many files opened" and  when updating.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Discover (plasma-discover), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f24e8015bcb in FwupdSourcesBackend::proceed (this=0x55fa2b876780) at /usr/src/debug/discover-5.24.5-1.2.x86_64/libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp:137
#5  0x00007f24e8015e87 in FwupdSourcesModel::setData (this=0x55fa2b85c3b0, index=..., value=..., role=<optimized out>) at /usr/src/debug/discover-5.24.5-1.2.x86_64/libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp:43
#6  0x00007f24fe6d36d4 in QConcatenateTablesProxyModel::setData (this=<optimized out>, index=..., value=..., role=10) at itemmodels/qconcatenatetablesproxymodel.cpp:207
#7  0x00007f24fe6b73c5 in QAbstractItemModel::qt_static_metacall (_o=0x55fa2f8fbc60, _c=28, _id=-1, _a=0x7ffdf2343ee0) at .moc/moc_qabstractitemmodel.cpp:350
#8  0x00007f24fe6bb1b3 in QAbstractItemModel::qt_metacall (this=this@entry=0x7f25006f8140 <(anonymous namespace)::Q_QGS_s_sources::innerFunction()::holder>, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=40, _a=_a@entry=0x7ffdf2343ee0) at .moc/moc_qabstractitemmodel.cpp:543
#9  0x00007f24fe6d6d95 in QConcatenateTablesProxyModel::qt_metacall (this=this@entry=0x7f25006f8140 <(anonymous namespace)::Q_QGS_s_sources::innerFunction()::holder>, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=_a@entry=0x7ffdf2343ee0) at .moc/moc_qconcatenatetablesproxymodel.cpp:217
#10 0x00007f25006a8667 in SourcesModel::qt_metacall (this=0x7f25006f8140 <(anonymous namespace)::Q_QGS_s_sources::innerFunction()::holder>, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7ffdf2343ee0) at /usr/src/debug/discover-5.24.5-1.2.x86_64/build/libdiscover/DiscoverCommon_autogen/3YJK5W5UP7/moc_SourcesModel.cpp:140
#11 0x00007f24ff3fb903 in QQmlObjectOrGadget::metacall (this=this@entry=0x7ffdf2344180, type=type@entry=QMetaObject::InvokeMetaMethod, index=<optimized out>, index@entry=45, argv=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/qml/qqmlobjectorgadget.cpp:51
#12 0x00007f24ff2d8656 in CallMethod (callType=<optimized out>, callArgs=0x4, engine=<optimized out>, argTypes=<optimized out>, argCount=<optimized out>, returnType=<optimized out>, index=<optimized out>, object=...) at /usr/include/qt5/QtCore/qvarlengtharray.h:189
#13 CallPrecise (object=..., data=..., engine=engine@entry=0x55fa2aff5b20, callArgs=callArgs@entry=0x7f24e93bc598, callType=callType@entry=QMetaObject::InvokeMetaMethod) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:1569
#14 0x00007f24ff2da50b in CallOverloaded (callType=<optimized out>, propertyCache=<optimized out>, callArgs=<optimized out>, engine=<optimized out>, data=..., object=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:1645
#15 QV4::QObjectMethod::callInternal (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:2133
#16 0x00007f24ff2f6bb6 in QV4::FunctionObject::call (argc=<optimized out>, argv=<optimized out>, thisObject=<optimized out>, this=<optimized out>) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../../src/qml/jsruntime/qv4functionobject_p.h:202
#17 QV4::Moth::VME::interpret (frame=0x55fa2f8fbc60, engine=0x55fa2aff5b20, code=0x55fa31548660 "\340c-\377$\177") at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:754
#18 0x00007f24ff2fa2d7 in QV4::Moth::VME::exec (frame=frame@entry=0x7ffdf2344440, engine=engine@entry=0x55fa2aff5b20) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:463
#19 0x00007f24ff28cbae in QV4::Function::call (this=this@entry=0x55fa2c6911d0, thisObject=<optimized out>, argv=argv@entry=0x7f24e93bc500, argc=<optimized out>, context=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/jsruntime/qv4function.cpp:69
#20 0x00007f24ff41609d in QQmlJavaScriptExpression::evaluate (this=this@entry=0x55fa332e2860, callData=callData@entry=0x7f24e93bc4d0, isUndefined=isUndefined@entry=0x0) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/qml/qqmljavascriptexpression.cpp:212
#21 0x00007f24ff3c793f in QQmlBoundSignalExpression::evaluate (this=<optimized out>, a=<optimized out>) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../../src/qml/jsruntime/qv4jscall_p.h:95
#22 0x00007f24ff3c9088 in QQmlBoundSignal_callback (e=0x55fa2b762030, a=0x0) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../../src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69
#23 0x00007f24ff3fb3ef in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x0) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/qml/qml/qqmlnotifier.cpp:104
#24 0x00007f24fe74d92d in doActivate<false> (sender=0x55fa319d8400, signal_index=64, argv=0x0) at kernel/qobject.cpp:3778
#25 0x00007f24f8489f71 in QQuickAbstractButtonPrivate::handleRelease (this=0x55fa2eb216d0, point=...) at /usr/src/debug/libqt5-qtquickcontrols2-5.15.2+kde10-1.3.x86_64/src/quicktemplates2/qquickabstractbutton.cpp:182
#26 0x00007f24f84a4025 in QQuickControl::mouseReleaseEvent (this=<optimized out>, event=0x7ffdf2346440) at /usr/src/debug/libqt5-qtquickcontrols2-5.15.2+kde10-1.3.x86_64/src/quicktemplates2/qquickcontrol.cpp:2151
#27 0x00007f2500342e28 in QQuickItem::event (this=0x55fa319d8400, ev=0x7ffdf2346440) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/quick/items/qquickitem.cpp:8221
#28 0x00007f24ff96f37e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55fa319d8400, e=0x7ffdf2346440) at kernel/qapplication.cpp:3632
#29 0x00007f24fe716988 in QCoreApplication::notifyInternal2 (receiver=0x55fa319d8400, event=0x7ffdf2346440) at kernel/qcoreapplication.cpp:1064
#30 0x00007f25003606da in QQuickWindowPrivate::deliverMouseEvent (this=this@entry=0x55fa2af33a90, pointerEvent=0x55fa2b9ed560) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/quick/items/qquickwindow.cpp:2019
#31 0x00007f2500361ed9 in QQuickWindowPrivate::deliverPointerEvent (this=0x55fa2af33a90, event=0x55fa2b9ed560) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde43-2.2.x86_64/src/quick/items/qquickwindow.cpp:2611
#32 0x00007f24feb7eaf5 in QWindow::event (this=0x55fa2af772a0, ev=<optimized out>) at kernel/qwindow.cpp:2438
#33 0x00007f24ff96f37e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55fa2af772a0, e=0x7ffdf2346440) at kernel/qapplication.cpp:3632
#34 0x00007f24fe716988 in QCoreApplication::notifyInternal2 (receiver=0x55fa2af772a0, event=0x7ffdf2346440) at kernel/qcoreapplication.cpp:1064
#35 0x00007f24feb72a45 in QGuiApplicationPrivate::processMouseEvent (e=0x7f24e414e780) at kernel/qguiapplication.cpp:2282
#36 0x00007f24feb472ac in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1169
#37 0x00007f24fb8ea5c0 in userEventSourceDispatch (source=<optimized out>) at qeventdispatcher_glib.cpp:74
#38 0x00007f24fcee1ea0 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#39 0x00007f24fcee2258 in ?? () from /lib64/libglib-2.0.so.0
#40 0x00007f24fcee22ec in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#41 0x00007f24fe76e5a6 in QEventDispatcherGlib::processEvents (this=0x55fa2aeddfc0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#42 0x00007f24fe7153fb in QEventLoop::exec (this=this@entry=0x7ffdf2346770, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#43 0x00007f24fe71d566 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#44 0x00007f24feb663bc in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867
#45 0x00007f24ff96f2f5 in QApplication::exec () at kernel/qapplication.cpp:2824
#46 0x000055fa28fb3f74 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/discover-5.24.5-1.2.x86_64/discover/main.cpp:217
[Inferior 1 (process 25325) detached]

Reported using DrKonqi
Comment 1 Nate Graham 2022-06-14 14:45:35 UTC
The crash you're reporting is in the firmware updating backend, and doesn't look like it has anything to do with Flatpak:

#4  0x00007f24e8015bcb in FwupdSourcesBackend::proceed (this=0x55fa2b876780) at /usr/src/debug/discover-5.24.5-1.2.x86_64/libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp:137
#5  0x00007f24e8015e87 in FwupdSourcesModel::setData (this=0x55fa2b85c3b0, index=..., value=..., role=<optimized out>) at /usr/src/debug/discover-5.24.5-1.2.x86_64/libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp:43

Please file a separate bug report about the issue you're experiencing being unable to update Flatpak apps with outdated runtimes. Thanks!
Comment 2 Aleix Pol 2022-07-26 23:10:04 UTC
Git commit cc0fc02a03d71cf5d0aad5cf1ae66bbf0a120219 by Aleix Pol.
Committed on 26/07/2022 at 23:09.
Pushed by apol into branch 'master'.

fwupd: Make sure we don't crash trying to print an error

M  +1    -1    libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp

https://invent.kde.org/plasma/discover/commit/cc0fc02a03d71cf5d0aad5cf1ae66bbf0a120219
Comment 3 Aleix Pol 2022-07-26 23:10:30 UTC
Git commit 4ec83193536ef0eba97b8975b5f300530e7e537f by Aleix Pol Gonzalez, on behalf of Aleix Pol.
Committed on 26/07/2022 at 23:10.
Pushed by apol into branch 'Plasma/5.25'.

fwupd: Make sure we don't crash trying to print an error


(cherry picked from commit cc0fc02a03d71cf5d0aad5cf1ae66bbf0a120219)

M  +1    -1    libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp

https://invent.kde.org/plasma/discover/commit/4ec83193536ef0eba97b8975b5f300530e7e537f
Comment 4 Aleix Pol 2022-07-26 23:10:46 UTC
Git commit f958ce562719ac80876677b49c1bab2bd158791d by Aleix Pol Gonzalez, on behalf of Aleix Pol.
Committed on 26/07/2022 at 23:10.
Pushed by apol into branch 'Plasma/5.24'.

fwupd: Make sure we don't crash trying to print an error


(cherry picked from commit cc0fc02a03d71cf5d0aad5cf1ae66bbf0a120219)

M  +1    -1    libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp

https://invent.kde.org/plasma/discover/commit/f958ce562719ac80876677b49c1bab2bd158791d
Comment 5 Aleix Pol 2022-07-26 23:14:56 UTC
Git commit 68197d7e6502f4b81be1bf80a70c962b392adfc4 by Aleix Pol.
Committed on 26/07/2022 at 23:14.
Pushed by apol into branch 'master'.

fwupd: Show the error to the user, they will appreciate an insight

M  +3    -3    libdiscover/backends/FwupdBackend/FwupdSourcesBackend.cpp

https://invent.kde.org/plasma/discover/commit/68197d7e6502f4b81be1bf80a70c962b392adfc4