Bug 446480 - Discovers's flatpak backend SEGFAULT the app when it doesn't find the remote of a package
Summary: Discovers's flatpak backend SEGFAULT the app when it doesn't find the remote ...
Status: RESOLVED DUPLICATE of bug 443745
Alias: None
Product: Discover
Classification: Applications
Component: Flatpak Backend (show other bugs)
Version: 5.23.4
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Dan Leinir Turthra Jensen
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-12-04 15:54 UTC by David Chamorro
Modified: 2021-12-04 20:00 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Chamorro 2021-12-04 15:54:11 UTC
STEPS TO REPRODUCE
1. Generate a flatpak package with gnome-builder (used gnome-master platform/sdk)
2. Install the package (will also install a disabled remote with no-enumerate, no-gpg-verify  flags)
3. Go to installed page on discover
4. Always reproducible SEGFAULT crash as the remote will not be found because it is disabled

OBSERVED RESULT
The application crashes

EXPECTED RESULT
The application should only notify that there was no repo associated with a package  (because it might be setup that way intentionally. -eg local development packages, testing)

Notes: 
1. Flatpak didn't allow me to enable the local repo installed by the package.
2. Removing the remote also removes the package by default, but when forced and the package is left installed it also crashes as not finding the remote

Application: plasma-discover (5.23.4)

Qt Version: 5.15.2
Frameworks Version: 5.88.0
Operating System: Linux 5.15.5-arch1-1 x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 5.23.4 [KCrashBackend]

The crash can be reproduced every time.

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

[KCrash Handler]
#4  FlatpakBackend::findSource(_FlatpakInstallation*, QString const&) const (origin=..., installation=0x7fbaac00f4d0, this=0x558ca39f4f30) at /usr/src/debug/discover-5.23.4/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp:113
#5  FlatpakBackend::getAppForInstalledRef(_FlatpakInstallation*, _FlatpakInstalledRef*) const (this=0x558ca39f4f30, installation=0x7fbaac00f4d0, ref=0x558ca4ffc4d0) at /usr/src/debug/discover-5.23.4/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp:352
#6  0x00007fbb10028339 in operator() (__closure=0x558ca5585890) at /usr/src/debug/discover-5.23.4/libdiscover/backends/FlatpakBackend/FlatpakBackend.cpp:1317
#7  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, FlatpakBackend::search(const AbstractResourcesBackend::Filters&)::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
#8  QtPrivate::Functor<FlatpakBackend::search(const AbstractResourcesBackend::Filters&)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
#9  QtPrivate::QFunctorSlotObject<FlatpakBackend::search(const AbstractResourcesBackend::Filters&)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x558ca5585880, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#10 0x00007fbb33fc156f in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#11 0x00007fbb35116d62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#12 0x00007fbb33f9441a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#13 0x00007fbb33f97519 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#14 0x00007fbb33feda14 in  () at /usr/lib/libQt5Core.so.5
#15 0x00007fbb3273c7dc in g_main_dispatch (context=0x7fbb28005000) at ../glib/glib/gmain.c:3381
#16 g_main_context_dispatch (context=0x7fbb28005000) at ../glib/glib/gmain.c:4099
#17 0x00007fbb327942b9 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fbb28005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4175
#18 0x00007fbb32739d05 in g_main_context_iteration (context=0x7fbb28005000, may_block=1) at ../glib/glib/gmain.c:4240
#19 0x00007fbb33fed046 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#20 0x00007fbb33f92d8c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#21 0x00007fbb33f9b2f4 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#22 0x0000558ca2b85946 in main(int, char**) (argc=<optimized out>, argv=0x7fff83777a70) at /usr/src/debug/discover-5.23.4/discover/main.cpp:213
[Inferior 1 (process 27045) detached]
Comment 1 Nate Graham 2021-12-04 20:00:46 UTC

*** This bug has been marked as a duplicate of bug 443745 ***