Bug 492657 - Discover crashes inQSnapdChannel::name() while showing the description page of Snap store
Summary: Discover crashes inQSnapdChannel::name() while showing the description page o...
Status: RESOLVED FIXED
Alias: None
Product: Discover
Classification: Applications
Component: Snap Backend (other bugs)
Version First Reported In: master
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2024-09-04 16:40 UTC by Patrick Silva
Modified: 2024-10-04 17:54 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.2.0
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/64195/events/1fb443e09f0d4d38861d99786b255d14/


Attachments
New crash information added by DrKonqi (143.11 KB, text/plain)
2024-09-04 16:40 UTC, Patrick Silva
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Patrick Silva 2024-09-04 16:40:44 UTC
Application: plasma-discover (6.1.80)

ApplicationNotResponding [ANR]: false
Qt Version: 6.7.2
Frameworks Version: 6.6.0
Operating System: Linux 6.10.7-061007-generic x86_64
Windowing System: Wayland
Distribution: KDE neon Unstable Edition
DrKonqi: 6.1.80 [CoredumpBackend]

-- Information about the crash:
1. open Discover
2. search for "snap store"
3. click on "Snap Store" search result

Result: Discover crashes ~5 seconds after the last step

The crash can be reproduced every time.

-- Backtrace (Reduced):
#6  0x000070e72bfa060f in QSnapdChannel::name() const (this=0x0) at ../snapd-qt/channel.cpp:44
[...]
#8  0x000070e740a6381b in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd2ccad1f8, r=0x59714a36b550, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#9  doActivate<false>(QObject*, int, void**) (sender=0x597146cffe10, signal_index=13, argv=0x7ffd2ccad1f8) at ./src/corelib/kernel/qobject.cpp:4086
[...]
#11 0x000070e740a6381b in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd2ccad378, r=0x597146cffe10, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#12 doActivate<false>(QObject*, int, void**) (sender=0x59714a36b640, signal_index=4, argv=0x7ffd2ccad378) at ./src/corelib/kernel/qobject.cpp:4086


Reported using DrKonqi
Comment 1 Patrick Silva 2024-09-04 16:40:46 UTC
Created attachment 173328 [details]
New crash information added by DrKonqi

DrKonqi auto-attaching complete backtrace.
Comment 2 Nate Graham 2024-09-05 19:02:58 UTC
Thread 1 (Thread 0x70e73a4cbd00 (LWP 20760)):
[KCrash Handler]
#6  0x000070e72bfa060f in QSnapdChannel::name() const (this=0x0) at ../snapd-qt/channel.cpp:44
#7  0x000070e73062db16 in  () at /usr/lib/x86_64-linux-gnu/qt6/plugins/discover/snap-backend.so
#8  0x000070e740a6381b in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd2ccad1f8, r=0x59714a36b550, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#9  doActivate<false>(QObject*, int, void**) (sender=0x597146cffe10, signal_index=13, argv=0x7ffd2ccad1f8) at ./src/corelib/kernel/qobject.cpp:4086
#10 0x000070e73062c248 in  () at /usr/lib/x86_64-linux-gnu/qt6/plugins/discover/snap-backend.so
#11 0x000070e740a6381b in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffd2ccad378, r=0x597146cffe10, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#12 doActivate<false>(QObject*, int, void**) (sender=0x59714a36b640, signal_index=4, argv=0x7ffd2ccad378) at ./src/corelib/kernel/qobject.cpp:4086
#13 0x000070e72bfb2edf in QSnapdFindRequest::handleResult(void*, void*) (this=0x59714a36b640, object=<optimized out>, result=<optimized out>) at ../snapd-qt/client.cpp:2129
#14 0x000070e72bfb2ff5 in find_ready_cb(GObject*, GAsyncResult*, gpointer) (object=<optimized out>, result=<optimized out>, data=0x70e6a0739440) at ../snapd-qt/client.cpp:2137
#15 0x000070e72beda757 in respond_cb (user_data=<optimized out>) at ../snapd-glib/requests/snapd-request.c:89
#16 0x000070e73f5f4c44 in g_main_dispatch (context=0x70e734005040) at ../../../glib/gmain.c:3419
#17 g_main_context_dispatch (context=0x70e734005040) at ../../../glib/gmain.c:4137
#18 0x000070e73f64a2b8 in g_main_context_iterate.constprop.0 (context=context@entry=0x70e734005040, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4213
#19 0x000070e73f5f23e3 in g_main_context_iteration (context=0x70e734005040, may_block=1) at ../../../glib/gmain.c:4278
#20 0x000070e740862700 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x597146763d60, flags=...) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:394
#21 0x000070e740aa3feb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd2ccad670, flags=..., flags@entry=...) at ./src/corelib/global/qflags.h:34
#22 0x000070e740aa5c2c in QCoreApplication::exec() () at ./src/corelib/global/qflags.h:74
#23 0x000070e740ee44a0 in QGuiApplication::exec() () at ./src/gui/kernel/qguiapplication.cpp:1926
#24 0x000070e742a08259 in QApplication::exec() () at ./src/widgets/kernel/qapplication.cpp:2555
#25 0x000059711d6cee8f in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at ./discover/main.cpp:219
Comment 3 Soumyadeep Ghosh 2024-09-23 20:44:08 UTC
Does it still happen? I just checked with my instance, and no such thing
Comment 4 Patrick Silva 2024-09-26 19:07:00 UTC
The crash is still reproducible.

Operating System: KDE neon Unstable Edition
KDE Plasma Version: 6.1.90
KDE Frameworks Version: 6.7.0
Qt Version: 6.7.2
Graphics Platform: Wayland
Comment 5 Bug Janitor Service 2024-09-29 16:18:06 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/discover/-/merge_requests/945
Comment 6 Aleix Pol 2024-10-03 16:19:42 UTC
Git commit 540b976fe208b04cf5fbea9dc2442a2ece925cc0 by Aleix Pol Gonzalez, on behalf of Aleix Pol.
Committed on 03/10/2024 at 16:14.
Pushed by apol into branch 'master'.

snap: Don't crash when a null channel is returned

M  +1    -1    libdiscover/backends/SnapBackend/SnapResource.cpp

https://invent.kde.org/plasma/discover/-/commit/540b976fe208b04cf5fbea9dc2442a2ece925cc0
Comment 7 Aleix Pol 2024-10-03 16:28:42 UTC
Git commit f05da2cb1bd6050e9c6c89905f3387e450de8cac by Aleix Pol Gonzalez.
Committed on 03/10/2024 at 16:24.
Pushed by apol into branch 'Plasma/6.2'.

snap: Don't crash when a null channel is returned


(cherry picked from commit 540b976fe208b04cf5fbea9dc2442a2ece925cc0)

Co-authored-by: Aleix Pol <aleixpol@kde.org>

M  +1    -1    libdiscover/backends/SnapBackend/SnapResource.cpp

https://invent.kde.org/plasma/discover/-/commit/f05da2cb1bd6050e9c6c89905f3387e450de8cac