<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>466619</bug_id>
          
          <creation_ts>2023-02-28 20:13:01 +0000</creation_ts>
          <short_desc>Discover crashes in AbstractResource::isInstalled() after closing during initial loading</short_desc>
          <delta_ts>2025-06-04 21:36:39 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>Discover</product>
          <component>discover</component>
          <version>6.2.2</version>
          <rep_platform>Neon</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>drkonqi</keywords>
          <priority>NOR</priority>
          <bug_severity>crash</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Flo Edelmann">git</reporter>
          <assigned_to name="Plasma Bugs List">plasma-bugs-null</assigned_to>
          <cc>aleixpol</cc>
    
    <cc>bmeier999</cc>
    
    <cc>bplu4t2f</cc>
    
    <cc>nate</cc>
    
    <cc>postix</cc>
    
    <cc>v.n.suadicani</cc>
          
          <cf_commitlink>https://invent.kde.org/plasma/discover/-/commit/4564d133485ed6399a801eaef10649ddb1376be5</cf_commitlink>
          <cf_versionfixedin>6.4.0</cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2212665</commentid>
    <comment_count>0</comment_count>
    <who name="Flo Edelmann">git</who>
    <bug_when>2023-02-28 20:13:01 +0000</bug_when>
    <thetext>Application: plasma-discover (5.27.1)

Qt Version: 5.15.8
Frameworks Version: 5.103.0
Operating System: Linux 5.19.0-32-generic x86_64
Windowing System: X11
Distribution: KDE neon 5.27
DrKonqi: 5.27.1 [KCrashBackend]

-- Information about the crash:
After the upgrade to Plasma 5.27.1, clicking on the VLC icon in the new startup wizard opened Discover. While it was still loading, I closed the window. After that, the crash occurred.

Opening Discover later via the Kickoff menu works without a problem, even if I try to close it while loading.

The reporter is unsure if this crash is reproducible.

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

[KCrash Handler]
#4  0x00007f1277702a8b in AbstractResource::isInstalled() () at /usr/lib/x86_64-linux-gnu/plasma-discover/libDiscoverCommon.so
#5  0x0000564b28f4db8c in  ()
#6  0x0000564b28f41ea2 in  ()
#7  0x00007f12754f40d4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff986d1ea0, r=0x7f1268009680, this=0x564b322e7190) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate&lt;false&gt;(QObject*, int, void**) (sender=0x564b2c1bde10, signal_index=0, argv=0x7fff986d1ea0) at kernel/qobject.cpp:3923
#9  0x00007f12754ed177 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x564b2c1bde10, m=m@entry=0x7f1275754140 &lt;QObject::staticMetaObject&gt;, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff986d1ea0) at kernel/qobject.cpp:3983
#10 0x00007f12754ed233 in QObject::destroyed(QObject*) (this=this@entry=0x564b2c1bde10, _t1=&lt;optimized out&gt;, _t1@entry=0x564b2c1bde10) at .moc/moc_qobject.cpp:219
#11 0x00007f12754f23e7 in QObject::~QObject() (this=&lt;optimized out&gt;, __in_chrg=&lt;optimized out&gt;) at kernel/qobject.cpp:1010
#12 0x00007f12754f843d in QTimer::~QTimer() (this=0x564b2c1bde10, __in_chrg=&lt;optimized out&gt;) at kernel/qtimer.cpp:165
#13 0x00007f12754e711e in QObjectPrivate::deleteChildren() (this=0x564b2b3447d0) at kernel/qobject.cpp:2137
#14 0x00007f12754f21a6 in QObject::~QObject() (this=&lt;optimized out&gt;, __in_chrg=&lt;optimized out&gt;) at kernel/qobject.cpp:1115
#15 0x0000564b28f41a72 in  ()
#16 0x00007f12754e9883 in QObject::event(QEvent*) (this=0x564b2b0f8930, e=0x564b2b8e8690) at kernel/qobject.cpp:1334
#17 0x00007f1276f6c793 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=&lt;optimized out&gt;, receiver=0x564b2b0f8930, e=0x564b2b8e8690) at kernel/qapplication.cpp:3640
#18 0x00007f12754bc07a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x564b2b0f8930, event=0x564b2b8e8690) at kernel/qcoreapplication.cpp:1064
#19 0x00007f12754bf167 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=52, data=0x564b2af96c00) at kernel/qcoreapplication.cpp:1821
#20 0x00007f12754c2f4c in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:86
#21 0x0000564b28f3fc63 in  ()
#22 0x00007f1274a29d90 in __libc_start_call_main (main=main@entry=0x564b28f3f340, argc=argc@entry=2, argv=argv@entry=0x7fff986d2528) at ../sysdeps/nptl/libc_start_call_main.h:58
#23 0x00007f1274a29e40 in __libc_start_main_impl (main=0x564b28f3f340, argc=2, argv=0x7fff986d2528, init=&lt;optimized out&gt;, fini=&lt;optimized out&gt;, rtld_fini=&lt;optimized out&gt;, stack_end=0x7fff986d2518) at ../csu/libc-start.c:392
#24 0x0000564b28f406a5 in  ()
[Inferior 1 (process 4757) detached]

Reported using DrKonqi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2212718</commentid>
    <comment_count>1</comment_count>
    <who name="Benjamin Meier">bmeier999</who>
    <bug_when>2023-02-28 21:20:38 +0000</bug_when>
    <thetext>Cant reproduce the crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2266668</commentid>
    <comment_count>2</comment_count>
    <who name="Nate Graham">nate</who>
    <bug_when>2023-11-17 20:48:49 +0000</bug_when>
    <thetext>*** Bug 477111 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2355945</commentid>
    <comment_count>3</comment_count>
    <who name="Nate Graham">nate</who>
    <bug_when>2024-09-18 17:49:48 +0000</bug_when>
    <thetext>*** Bug 493312 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2371368</commentid>
    <comment_count>4</comment_count>
    <who name="postix">postix</who>
    <bug_when>2024-11-02 15:22:28 +0000</bug_when>
    <thetext>Can reproduce  the crash:

1) Open Kickoff
2) Search for a not installed app, click on it &quot;Get ...&quot;

Discover opens and refreshes the package list with `/usr/libexec/packagekitd` running the background.
The view says &quot;Loading&quot;. Waited for ~20 seconds and then closed Discover by pressing on the X in its titlebar.

Discover then crashed with the following log:

```
#3  0x00007fa111e6287f in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash-6.7.0/src/kcrash.cpp:596
#4  0x00007fa10ea41580 in &lt;signal handler called&gt; () at /lib64/libc.so.6
#5  0x0000000000000090 in ??? ()
#6  0x00007fa111f596ed in AbstractResource::isInstalled (this=&lt;optimized out&gt;) at /usr/src/debug/discover-6.2.2/libdiscover/resources/AbstractResource.cpp:71
#7  0x000056290549cd34 in operator()&lt;StreamResult&gt; (__closure=&lt;synthetic pointer&gt;, res=...) at /usr/src/debug/discover-6.2.2/discover/DiscoverObject.cpp:366
#8  kIndexOf&lt;QList&lt;StreamResult&gt;, DiscoverObject::openApplication(const QUrl&amp;)::&lt;lambda()&gt;::&lt;lambda(QVector&lt;StreamResult&gt;&amp;)&gt;::&lt;lambda()&gt;::&lt;lambda(auto:52)&gt; &gt; (func=..., list=...) at /usr/src/debug/discover-6.2.2/libdiscover/utils.h:123
#9  operator() (__closure=0x56293d6804f0) at /usr/src/debug/discover-6.2.2/discover/DiscoverObject.cpp:365
#10 std::__invoke_impl&lt;bool, DiscoverObject::openApplication(const QUrl&amp;)::&lt;lambda()&gt;::&lt;lambda(QVector&lt;StreamResult&gt;&amp;)&gt;::&lt;lambda()&gt;&amp;&gt; (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#11 std::__invoke_r&lt;bool, DiscoverObject::openApplication(const QUrl&amp;)::&lt;lambda()&gt;::&lt;lambda(QVector&lt;StreamResult&gt;&amp;)&gt;::&lt;lambda()&gt;&amp;&gt; (__fn=...) at /usr/include/c++/14/bits/invoke.h:114
#12 std::_Function_handler&lt;bool(), DiscoverObject::openApplication(const QUrl&amp;)::&lt;lambda()&gt;::&lt;lambda(QVector&lt;StreamResult&gt;&amp;)&gt;::&lt;lambda()&gt; &gt;::_M_invoke(const std::_Any_data &amp;) (__functor=&lt;optimized out&gt;) at /usr/include/c++/14/bits/std_function.h:290
#13 0x000056290548fe46 in std::function&lt;bool ()&gt;::operator()() const (this=0x56293d7b3370) at /usr/include/c++/14/bits/std_function.h:591
#14 OneTimeAction::trigger (this=0x56293d7b3360) at /usr/src/debug/discover-6.2.2/libdiscover/utils.h:39
#15 OneTimeAction::trigger (this=0x56293d7b3360) at /usr/src/debug/discover-6.2.2/libdiscover/utils.h:34
#16 0x00007fa10f40e161 in QtPrivate::QSlotObjectBase::call (this=0x56293df5a3b0, r=&lt;optimized out&gt;, a=0x7ffdf787b690, this=&lt;optimized out&gt;, r=&lt;optimized out&gt;, a=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobjectdefs_impl.h:486
#17 doActivate&lt;false&gt; (sender=0x56293df18900, signal_index=0, argv=0x7ffdf787b690) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:4120
#18 0x00007fa10f406793 in QObject::destroyed (this=&lt;optimized out&gt;, _t1=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/build/src/corelib/kernel/moc_qobject.cpp:229
#19 0x00007fa10f3f3a4f in QObject::~QObject (this=0x56293df18900, this=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:1040
#20 0x00007fa10f41243d in QTimer::~QTimer (this=0x56293df18900, this=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qtimer.cpp:135
#21 0x00007fa10f3f260b in QObjectPrivate::deleteChildren (this=this@entry=0x56293d052660) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:2211
#22 0x00007fa10f3f39fb in QObject::~QObject (this=&lt;optimized out&gt;, this=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:1138
#23 0x0000562905490269 in DiscoverObject::~DiscoverObject (this=0x56293cbe8a40, this=&lt;optimized out&gt;) at /usr/src/debug/discover-6.2.2/discover/DiscoverObject.cpp:228
#24 0x00007fa10f3f9e7a in QObject::event (this=0x56293cbe8a40, e=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:1404
#25 0x00007fa110fdec35 in QApplicationPrivate::notify_helper (this=&lt;optimized out&gt;, receiver=0x56293cbe8a40, e=0x56293d4b0900) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/widgets/kernel/qapplication.cpp:3294
#26 0x00007fa10f3acbe8 in QCoreApplication::notifyInternal2 (receiver=0x56293cbe8a40, event=0x56293d4b0900) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qcoreapplication.cpp:1165
#27 0x00007fa10f3b57d8 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=52, data=0x56293cb92640) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qcoreapplication.cpp:1965
#28 0x00007fa10f3b6b07 in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/tools/qscopedpointer.h:110
#29 0x00007fa10fc0d580 in QGuiApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/gui/kernel/qguiapplication.cpp:1975
#30 0x00007fa110fdbef9 in QApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/widgets/kernel/qapplication.cpp:2562
#31 0x000056290548de06 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;) at /usr/src/debug/discover-6.2.2/discover/main.cpp:219
```

```
#3  0x00007fa111e6287f in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash-6.7.0/src/kcrash.cpp:596
        data = {&lt;KCrash::MetadataWriter&gt; = {_vptr.MetadataWriter = 0x7fa111e67828 &lt;vtable for KCrash::Metadata+16&gt;}, argv = {_M_elems = {0x0, 0x7fa111e65301 &quot;--glrenderer&quot;, 0x56293d04daa0 &quot;AMD Radeon RX 580 Series (radeonsi, polaris10, LLVM 18.1.8, DRM 3.59, 6.11.5-1-default)&quot;, 0x7fa111e6530e &quot;--qtversion&quot;, 0x56293d04e930 &quot;6.8.0&quot;, 0x7fa111e65320 &quot;--kdeframeworksversion&quot;, 0x7fa111e6531a &quot;6.7.0&quot;, 0x7fa111e65358 &quot;--platform&quot;, 0x56293d23bd40 &quot;wayland&quot;, 0x7fa111e65389 &quot;--appname&quot;, 0x56293d0647b0 &quot;plasma-discover&quot;, 0x7fa111e65393 &quot;--apppath&quot;, 0x56293d0644e0 &quot;/usr/bin&quot;, 0x7fa111e653a0 &quot;--signal&quot;, 0x7ffdf787a746 &quot;11&quot;, 0x7fa111e653ae &quot;--pid&quot;, 0x7ffdf787a750 &quot;4310&quot;, 0x7fa111e653b4 &quot;--appversion&quot;, 0x56293d03ed20 &quot;6.2.2&quot;, 0x7fa111e653c1 &quot;--programname&quot;, 0x56293d0644b0 &quot;Discover&quot;, 0x7fa111e653cf &quot;--bugaddress&quot;, 0x56293d029720 &quot;submit@bugs.kde.org&quot;, 0x7fa111e653dc &quot;--productname&quot;, 0x56293d03e360 &quot;discover/discover&quot;, 0x0 &lt;repeats 13 times&gt;}}, argc = 25, m_writer = 0x7ffdf787a6f0}
        platformName = {d = {d = 0x56293d23bd30, ptr = 0x56293d23bd40 &quot;wayland&quot;, size = 7}, static _empty = 0 &apos;\000&apos;}
        about = 0x56293d04bcd0
        argv = 0x7ffdf787a778
        ini = {&lt;KCrash::MetadataWriter&gt; = {_vptr.MetadataWriter = 0x7fa111e67858 &lt;vtable for KCrash::MetadataINIWriter+16&gt;}, writable = false, fd = 31}
        sigtxt = &quot;11\000\376\376\376\376\376\376\376&quot;
        pidtxt = &quot;4310\000&quot;, &apos;\376&apos; &lt;repeats 15 times&gt;
        argc = &lt;optimized out&gt;
        crashRecursionCounter = 2
#4  0x00007fa10ea41580 in &lt;signal handler called&gt; () at /lib64/libc.so.6
#5  0x0000000000000090 in ??? ()
#6  0x00007fa111f596ed in AbstractResource::isInstalled (this=&lt;optimized out&gt;) at /usr/src/debug/discover-6.2.2/libdiscover/resources/AbstractResource.cpp:71
#7  0x000056290549cd34 in operator()&lt;StreamResult&gt; (__closure=&lt;synthetic pointer&gt;, res=...) at /usr/src/debug/discover-6.2.2/discover/DiscoverObject.cpp:366
#8  kIndexOf&lt;QList&lt;StreamResult&gt;, DiscoverObject::openApplication(const QUrl&amp;)::&lt;lambda()&gt;::&lt;lambda(QVector&lt;StreamResult&gt;&amp;)&gt;::&lt;lambda()&gt;::&lt;lambda(auto:52)&gt; &gt; (func=..., list=...) at /usr/src/debug/discover-6.2.2/libdiscover/utils.h:123
        it = {i = 0x56293da15cc0}
        itEnd = {i = &lt;optimized out&gt;}
        i = 0
        i = &lt;optimized out&gt;
        it = {i = &lt;optimized out&gt;}
        itEnd = {i = &lt;optimized out&gt;}
#9  operator() (__closure=0x56293d6804f0) at /usr/src/debug/discover-6.2.2/discover/DiscoverObject.cpp:365
        idx = &lt;optimized out&gt;
        timeout = {wp = {d = 0x56293e0553c0, value = 0x56293df18900}}
        res = {&lt;QListSpecialMethods&lt;StreamResult&gt;&gt; = {&lt;QListSpecialMethodsBase&lt;StreamResult&gt;&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, d = {d = 0x56293da15cb0, ptr = 0x56293da15cc0, size = 3}}
        this = 0x56293cbe8a40
        timeout = {wp = {d = &lt;optimized out&gt;, value = &lt;optimized out&gt;}}
        res = {&lt;QListSpecialMethods&lt;StreamResult&gt;&gt; = {&lt;QListSpecialMethodsBase&lt;StreamResult&gt;&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, d = {d = &lt;optimized out&gt;, ptr = &lt;optimized out&gt;, size = &lt;optimized out&gt;}}
        this = &lt;optimized out&gt;
        idx = &lt;optimized out&gt;
        oneBroken = &lt;optimized out&gt;
#10 std::__invoke_impl&lt;bool, DiscoverObject::openApplication(const QUrl&amp;)::&lt;lambda()&gt;::&lt;lambda(QVector&lt;StreamResult&gt;&amp;)&gt;::&lt;lambda()&gt;&amp;&gt; (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#11 std::__invoke_r&lt;bool, DiscoverObject::openApplication(const QUrl&amp;)::&lt;lambda()&gt;::&lt;lambda(QVector&lt;StreamResult&gt;&amp;)&gt;::&lt;lambda()&gt;&amp;&gt; (__fn=...) at /usr/include/c++/14/bits/invoke.h:114
#12 std::_Function_handler&lt;bool(), DiscoverObject::openApplication(const QUrl&amp;)::&lt;lambda()&gt;::&lt;lambda(QVector&lt;StreamResult&gt;&amp;)&gt;::&lt;lambda()&gt; &gt;::_M_invoke(const std::_Any_data &amp;) (__functor=&lt;optimized out&gt;) at /usr/include/c++/14/bits/std_function.h:290
#13 0x000056290548fe46 in std::function&lt;bool ()&gt;::operator()() const (this=0x56293d7b3370) at /usr/include/c++/14/bits/std_function.h:591
#14 OneTimeAction::trigger (this=0x56293d7b3360) at /usr/src/debug/discover-6.2.2/libdiscover/utils.h:39
#15 OneTimeAction::trigger (this=0x56293d7b3360) at /usr/src/debug/discover-6.2.2/libdiscover/utils.h:34
#16 0x00007fa10f40e161 in QtPrivate::QSlotObjectBase::call (this=0x56293df5a3b0, r=&lt;optimized out&gt;, a=0x7ffdf787b690, this=&lt;optimized out&gt;, r=&lt;optimized out&gt;, a=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobjectdefs_impl.h:486
#17 doActivate&lt;false&gt; (sender=0x56293df18900, signal_index=0, argv=0x7ffdf787b690) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:4120
        obj = {m_slotObject = std::unique_ptr&lt;class QtPrivate::QSlotObjectBase&gt; = {get() = 0x56293df5a3b0}}
        receiver = &lt;optimized out&gt;
        td = &lt;optimized out&gt;
        receiverInSameThread = &lt;optimized out&gt;
        senderData = {previous = 0x0, receiver = 0x56293d7b3360, sender = 0x56293df18900, signal = 0}
        c = 0x56293df196d0
        connections = {d = 0x56293df1ce60}
        list = 0x56293df1ceb0
        inSenderThread = &lt;optimized out&gt;
        highestConnectionId = 2
        signalVector = &lt;optimized out&gt;
        currentThreadId = 0x7fa10af09280
        sp = &lt;optimized out&gt;
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#18 0x00007fa10f406793 in QObject::destroyed (this=&lt;optimized out&gt;, _t1=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/build/src/corelib/kernel/moc_qobject.cpp:229
        _a = {0x0, 0x7ffdf787b688}
#19 0x00007fa10f3f3a4f in QObject::~QObject (this=0x56293df18900, this=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:1040
        d = &lt;optimized out&gt;
        sharedRefcount = 0x56293e0553c0
        cd = &lt;optimized out&gt;
        d = &lt;optimized out&gt;
        sharedRefcount = &lt;optimized out&gt;
        cd = &lt;optimized out&gt;
        ownThread = &lt;optimized out&gt;
        privThread = &lt;optimized out&gt;
        signalSlotMutex = &lt;optimized out&gt;
        locker = {m_mutex = &lt;optimized out&gt;, m_isLocked = &lt;optimized out&gt;}
        receiverCount = &lt;optimized out&gt;
        signal = &lt;optimized out&gt;
        connectionList = &lt;optimized out&gt;
        c = &lt;optimized out&gt;
        m = &lt;optimized out&gt;
        needToUnlock = &lt;optimized out&gt;
        node = &lt;optimized out&gt;
        sender = &lt;optimized out&gt;
        m = &lt;optimized out&gt;
        needToUnlock = &lt;optimized out&gt;
        senderData = &lt;optimized out&gt;
        slotObj = &lt;optimized out&gt;
        locksAreTheSame = &lt;optimized out&gt;
#20 0x00007fa10f41243d in QTimer::~QTimer (this=0x56293df18900, this=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qtimer.cpp:135
#21 0x00007fa10f3f260b in QObjectPrivate::deleteChildren (this=this@entry=0x56293d052660) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:2211
        i = 2
#22 0x00007fa10f3f39fb in QObject::~QObject (this=&lt;optimized out&gt;, this=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:1138
        d = &lt;optimized out&gt;
        sharedRefcount = &lt;optimized out&gt;
        cd = &lt;optimized out&gt;
        d = &lt;optimized out&gt;
        sharedRefcount = &lt;optimized out&gt;
        cd = &lt;optimized out&gt;
        ownThread = &lt;optimized out&gt;
        privThread = &lt;optimized out&gt;
        signalSlotMutex = &lt;optimized out&gt;
        locker = {m_mutex = &lt;optimized out&gt;, m_isLocked = &lt;optimized out&gt;}
        receiverCount = &lt;optimized out&gt;
        signal = &lt;optimized out&gt;
        connectionList = &lt;optimized out&gt;
        c = &lt;optimized out&gt;
        m = &lt;optimized out&gt;
        needToUnlock = &lt;optimized out&gt;
        node = &lt;optimized out&gt;
        sender = &lt;optimized out&gt;
        m = &lt;optimized out&gt;
        needToUnlock = &lt;optimized out&gt;
        senderData = &lt;optimized out&gt;
        slotObj = &lt;optimized out&gt;
        locksAreTheSame = &lt;optimized out&gt;
#23 0x0000562905490269 in DiscoverObject::~DiscoverObject (this=0x56293cbe8a40, this=&lt;optimized out&gt;) at /usr/src/debug/discover-6.2.2/discover/DiscoverObject.cpp:228
#24 0x00007fa10f3f9e7a in QObject::event (this=0x56293cbe8a40, e=&lt;optimized out&gt;) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qobject.cpp:1404
#25 0x00007fa110fdec35 in QApplicationPrivate::notify_helper (this=&lt;optimized out&gt;, receiver=0x56293cbe8a40, e=0x56293d4b0900) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/widgets/kernel/qapplication.cpp:3294
        consumed = false
        filtered = false
#26 0x00007fa10f3acbe8 in QCoreApplication::notifyInternal2 (receiver=0x56293cbe8a40, event=0x56293d4b0900) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qcoreapplication.cpp:1165
        selfRequired = &lt;optimized out&gt;
        result = false
        cbdata = {0x56293cbe8a40, 0x56293d4b0900, 0x7ffdf787b957}
        d = &lt;optimized out&gt;
        threadData = &lt;optimized out&gt;
        scopeLevelCounter = {threadData = 0x56293cb92640}
#27 0x00007fa10f3b57d8 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=52, data=0x56293cb92640) at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/kernel/qcoreapplication.cpp:1965
        e = &lt;optimized out&gt;
        pe = &lt;optimized out&gt;
        r = &lt;optimized out&gt;
        relocker = {m_func = {__locker = &lt;optimized out&gt;}, m_invoke = &lt;optimized out&gt;}
        event_deleter = {d = &lt;optimized out&gt;}
        locker = {_M_device = 0x56293cb92698, _M_owns = false}
        startOffset = 76
        i = @0x7ffdf787b9d0: 76
        cleanup = {receiver = 0x0, event_type = 52, data = 0x56293cb92640, exceptionCaught = true}
#28 0x00007fa10f3b6b07 in QCoreApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/corelib/tools/qscopedpointer.h:110
        threadData = 0x56293cb92640
        eventLoop = {&lt;QObject&gt; = {_vptr.QObject = 0x7fa10f82e448 &lt;vtable for QEventLoop+16&gt;, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fa10f69d840 &lt;_ZN12_GLOBAL__N_1L39qt_meta_stringdata_CLASSQObjectENDCLASSE.lto_priv.0&gt;, data = 0x7fa10f69d720 &lt;_ZL33qt_meta_data_CLASSQObjectENDCLASS.lto_priv.0&gt;, static_metacall = 0x7fa10f407d00 &lt;QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)&gt;, relatedMetaObjects = 0x0, metaTypes = 0x7fa10f82bb80 &lt;_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_141qt_meta_stringdata_CLASSQObjectENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEENS3_I7QObjectS6_EENS3_IvS5_IbLb0EEEENS3_IPS8_SA_EESB_SB_NS3_IRKS4_SA_EESB_SD_EE.lto_priv.0&gt;, extradata = 0x0}}, d_ptr = {d = 0x56293d04d930}}, static staticMetaObject = {d = {superdata = {direct = 0x5629054e1400 &lt;QObject::staticMetaObject&gt;}, stringdata = 0x7fa10f69ca80 &lt;_ZN12_GLOBAL__N_1L42qt_meta_stringdata_CLASSQEventLoopENDCLASSE.lto_priv.0&gt;, data = 0x7fa10f69c980 &lt;_ZL36qt_meta_data_CLASSQEventLoopENDCLASS.lto_priv.0&gt;, static_metacall = 0x7fa10f3b1df0 &lt;QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)&gt;, relatedMetaObjects = 0x0, metaTypes = 0x7fa10f82b700 &lt;_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_144qt_meta_stringdata_CLASSQEventLoopENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI6QFlagsIN10QEventLoop17ProcessEventsFlagEESt17integral_constantIbLb1EEEENS3_IS5_S9_EENS3_IvS8_IbLb0EEEENS3_IiSC_EESD_SD_EE.lto_priv.0&gt;, extradata = 0x0}}}
        returnCode = 0
#29 0x00007fa10fc0d580 in QGuiApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/gui/kernel/qguiapplication.cpp:1975
#30 0x00007fa110fdbef9 in QApplication::exec () at /usr/src/debug/qtbase-everywhere-src-6.8.0/src/widgets/kernel/qapplication.cpp:2562
#31 0x000056290548de06 in main (argc=&lt;optimized out&gt;, argv=&lt;optimized out&gt;) at /usr/src/debug/discover-6.2.2/discover/main.cpp:219
        format = {d = 0x56293cb8b720}
        app = {&lt;QGuiApplication&gt; = {&lt;QCoreApplication&gt; = {&lt;QObject&gt; = {_vptr.QObject = 0x7fa1115bcac8 &lt;vtable for QApplication+16&gt;, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fa10f69d840 &lt;_ZN12_GLOBAL__N_1L39qt_meta_stringdata_CLASSQObjectENDCLASSE.lto_priv.0&gt;, data = 0x7fa10f69d720 &lt;_ZL33qt_meta_data_CLASSQObjectENDCLASS.lto_priv.0&gt;, static_metacall = 0x7fa10f407d00 &lt;QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)&gt;, relatedMetaObjects = 0x0, metaTypes = 0x7fa10f82bb80 &lt;_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_141qt_meta_stringdata_CLASSQObjectENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEENS3_I7QObjectS6_EENS3_IvS5_IbLb0EEEENS3_IPS8_SA_EESB_SB_NS3_IRKS4_SA_EESB_SD_EE.lto_priv.0&gt;, extradata = 0x0}}, d_ptr = {d = 0x56293cb622a0}}, static staticMetaObject = {d = {superdata = {direct = 0x5629054e1400 &lt;QObject::staticMetaObject&gt;}, stringdata = 0x7fa10f69cd80 &lt;_ZN12_GLOBAL__N_1L48qt_meta_stringdata_CLASSQCoreApplicationENDCLASSE.lto_priv.0&gt;, data = 0x7fa10f69cbe0 &lt;_ZL42qt_meta_data_CLASSQCoreApplicationENDCLASS.lto_priv.0&gt;, static_metacall = 0x7fa10f3b4c70 &lt;QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)&gt;, relatedMetaObjects = 0x0, metaTypes = 0x7fa10f82b780 &lt;_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_150qt_meta_stringdata_CLASSQCoreApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI7QStringSt17integral_constantIbLb1EEEES7_S7_S7_NS3_IbS6_EENS3_I16QCoreApplicationS6_EENS3_IvS5_IbLb0EEEESC_SC_SC_SC_SC_SC_NS3_IiSB_EESC_EE.lto_priv.0&gt;, extradata = 0x0}}, static self = 0x7ffdf787bb70}, static staticMetaObject = {d = {superdata = {direct = 0x5629054e1720 &lt;QCoreApplication::staticMetaObject&gt;}, stringdata = 0x7fa1101da0a0 &lt;_ZN12_GLOBAL__N_1L47qt_meta_stringdata_CLASSQGuiApplicationENDCLASSE.lto_priv.0&gt;, data = 0x7fa1101d9da0 &lt;_ZL41qt_meta_data_CLASSQGuiApplicationENDCLASS.lto_priv.0&gt;, static_metacall = 0x7fa10fc1f6d0 &lt;QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)&gt;, relatedMetaObjects = 0x0, metaTypes = 0x7fa110311a40 &lt;_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_149qt_meta_stringdata_CLASSQGuiApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteI5QIconSt17integral_constantIbLb1EEEENS3_I7QStringS6_EES9_NS3_IN2Qt15LayoutDirectionES6_EES9_NS3_IbS6_EENS3_IP7QScreenS6_EENS3_I15QGuiApplicationS6_EENS3_IvS5_IbLb0EEEESK_NS3_ISF_SJ_EESK_SL_SK_SL_SK_SK_NS3_IP7QObjectSJ_EESK_NS3_IP7QWindowSJ_EESK_NS3_INSA_16ApplicationStateESJ_EESK_NS3_ISB_SJ_EESK_NS3_IR15QSessionManagerSJ_EESK_SX_SK_SK_NS3_IRK8QPaletteSJ_EESK_NS3_IRK5QFontSJ_EESK_NS3_IxSJ_EESK_SO_EE.lto_priv.0&gt;, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x5629054e16a0 &lt;QGuiApplication::staticMetaObject&gt;}, stringdata = 0x7fa11144b540 &lt;_ZN12_GLOBAL__N_1L44qt_meta_stringdata_CLASSQApplicationENDCLASSE.lto_priv.0&gt;, data = 0x7fa11144b3a0 &lt;_ZL38qt_meta_data_CLASSQApplicationENDCLASS.lto_priv.0&gt;, static_metacall = 0x7fa110fe1a20 &lt;QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)&gt;, relatedMetaObjects = 0x0, metaTypes = 0x7fa1115ac8c0 &lt;_Z27qt_incomplete_metaTypeArrayIN12_GLOBAL__N_146qt_meta_stringdata_CLASSQApplicationENDCLASS_tEJN9QtPrivate20TypeAndForceCompleteIiSt17integral_constantIbLb1EEEES6_S6_S6_S6_S6_NS3_I7QStringS5_EENS3_IbS5_EENS3_I12QApplicationS5_EENS3_IvS4_IbLb0EEEENS3_IP7QWidgetSC_EESG_SD_NS3_IRKS7_SC_EESD_NS3_IKbSC_EESD_SD_EE.lto_priv.0&gt;, extradata = 0x0}}}
        about = {d = std::unique_ptr&lt;class KAboutDataPrivate&gt; = {get() = 0x56293d063640}}
        discoverObject = &lt;optimized out&gt;
```

Operating System: openSUSE Tumbleweed 20241030
KDE Plasma Version: 6.2.2
KDE Frameworks Version: 6.7.0
Qt Version: 6.8.0
Kernel Version: 6.11.5-1-default (64-bit)
Graphics Platform: Wayland</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2425067</commentid>
    <comment_count>5</comment_count>
    <who name="Bug Janitor Service">bug-janitor</who>
    <bug_when>2025-05-17 19:20:24 +0000</bug_when>
    <thetext>A possibly relevant merge request was started @ https://invent.kde.org/plasma/discover/-/merge_requests/1090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2429329</commentid>
    <comment_count>6</comment_count>
    <who name="Aleix Pol">aleixpol</who>
    <bug_when>2025-05-31 14:55:15 +0000</bug_when>
    <thetext>Git commit 82226e8a5cd263d5e9eb2b4c7c48eb32cfae296f by Aleix Pol Gonzalez, on behalf of Wendi Gan.
Committed on 31/05/2025 at 14:54.
Pushed by apol into branch &apos;master&apos;.

Fix use-after-free when closing Discover

When closing Discover:
- First, ResourcesModel::~ResourcesModel() is called, with `AbstractResource` (child object of `AbstractResourcesBackend`) freed.
- Next, DiscoverObject::~DiscoverObject() is called, with its child object `timeout` destroyed. Then, openResourceOrWait() is invoked, and res.resource-&gt;isInstalled() accesses freed memory (use-after-free).

Change:
Add `m_isDeleting` to avoid accessing freed memory during destruction.

M  +4    -0    discover/DiscoverObject.cpp
M  +2    -0    discover/DiscoverObject.h

https://invent.kde.org/plasma/discover/-/commit/82226e8a5cd263d5e9eb2b4c7c48eb32cfae296f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2430426</commentid>
    <comment_count>7</comment_count>
    <who name="Nate Graham">nate</who>
    <bug_when>2025-06-04 21:36:39 +0000</bug_when>
    <thetext>Git commit 4564d133485ed6399a801eaef10649ddb1376be5 by Nate Graham.
Committed on 04/06/2025 at 21:28.
Pushed by ngraham into branch &apos;Plasma/6.4&apos;.

Fix use-after-free when closing Discover

When closing Discover:
- First, ResourcesModel::~ResourcesModel() is called, with `AbstractResource` (child object of `AbstractResourcesBackend`) freed.
- Next, DiscoverObject::~DiscoverObject() is called, with its child object `timeout` destroyed. Then, openResourceOrWait() is invoked, and res.resource-&gt;isInstalled() accesses freed memory (use-after-free).

Change:
Add `m_isDeleting` to avoid accessing freed memory during destruction.


(cherry picked from commit 82226e8a5cd263d5e9eb2b4c7c48eb32cfae296f)

Co-authored-by: Wendi Gan &lt;gwdx@mail.ustc.edu.cn&gt;

M  +4    -0    discover/DiscoverObject.cpp
M  +2    -0    discover/DiscoverObject.h

https://invent.kde.org/plasma/discover/-/commit/4564d133485ed6399a801eaef10649ddb1376be5</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>