Bug 495783 - KDED crashed in std::__uniq_ptr_impl<KNotification::Private, std::default_delete<KNotification::Private> >::_M_ptr while a plasma-nm connectivity status change notification was being deleted
Summary: KDED crashed in std::__uniq_ptr_impl<KNotification::Private, std::default_del...
Status: RESOLVED WORKSFORME
Alias: None
Product: plasmashell
Classification: Plasma
Component: Networking in general (other bugs)
Version First Reported In: 6.2.2
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-04 10:18 UTC by BryanLiang
Modified: 2025-08-11 18:20 UTC (History)
3 users (show)

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


Attachments
the stack trace of the coredump file (79.30 KB, text/plain)
2024-11-04 10:18 UTC, BryanLiang
Details

Note You need to log in before you can comment on or make changes to this bug.
Description BryanLiang 2024-11-04 10:18:54 UTC
Created attachment 175509 [details]
the stack trace of the coredump file

SUMMARY
Kded crashed, which make all the 3rd application like solaar, keepassxc tray not visable.


OBSERVED RESULT
All the 3rd application like solaar, keepassxc tray not visable.

EXPECTED RESULT
Kded did not crash

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.2.2
KDE Frameworks Version: 6.7.0
Qt Version: 6.8.0
Kernel Version: 6.11.6-zen1-1-zen-cjktty (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 5800H with Radeon Graphics
Memory: 13.5 GiB of RAM
Graphics Processor: AMD Radeon Graphics

ADDITIONAL INFORMATION
Comment 1 BryanLiang 2024-11-04 11:25:24 UTC
It seems that the plasma-kded6.service will not be restarted when crashed unless user restart it manually or re-login according to its service file.

[Unit]
Description=KDE Daemon 6
PartOf=graphical-session.target
After=plasma-kcminit.service

[Service]
ExecStart=/usr/bin/kded6
BusName=org.kde.kded6
Slice=session.slice
TimeoutStopSec=5sec

I think something like `Restart=on-failure` should be added to it.
Comment 2 Harald Sitter 2024-11-04 12:42:25 UTC
Please file a separate bug about the daemon not restarting. We'll use this one to track the crash, which actually happens inside plasma-nm it seems.
Comment 3 Ben Cooksley 2024-12-23 18:23:48 UTC
Bulk transfer as requested in T17796
Comment 4 Nate Graham 2025-08-07 16:13:01 UTC
Crashed while clicking a plasma-nm notification, seemingly:

#5  std::__uniq_ptr_impl<KNotification::Private, std::default_delete<KNotification::Private> >::_M_ptr (this=0x10) at /usr/include/c++/14.2.1/bits/unique_ptr.h:193
No locals.
#6  std::unique_ptr<KNotification::Private, std::default_delete<KNotification::Private> >::get (this=0x10) at /usr/include/c++/14.2.1/bits/unique_ptr.h:464
No locals.
#7  std::unique_ptr<KNotification::Private, std::default_delete<KNotification::Private> >::operator-> (this=0x10) at /usr/include/c++/14.2.1/bits/unique_ptr.h:457
No locals.
#8  KNotification::xdgActivationToken (this=0x0) at /usr/src/debug/knotifications/knotifications-6.7.0/src/knotification.cpp:628
No locals.
#9  0x00007a4554295008 in operator() (__closure=0x7a4560050290) at /usr/src/debug/plasma-nm/plasma-nm-6.2.2/kded/connectivitymonitor.cpp:77
        job = 0x5cea2c466e80
        this = 0x7a456003e700
        this = <optimized out>
        job = <optimized out>
#10 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:141
        arg = <optimized out>
        f = <optimized out>
        arg = <optimized out>
        f = <optimized out>
#11 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ConnectivityMonitor::connectivityChanged(NetworkManager::Connectivity)::<lambda()> >::call(ConnectivityMonitor::connectivityChanged(NetworkManager::Connectivity)::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
No locals.
#12 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ConnectivityMonitor::connectivityChanged(NetworkManager::Connectivity)::<lambda()> >::call (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:140
No locals.
#13 QtPrivate::FunctorCallable<ConnectivityMonitor::connectivityChanged(NetworkManager::Connectivity)::<lambda()> >::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:362
No locals.
#14 QtPrivate::QCallableObject<ConnectivityMonitor::connectivityChanged(NetworkManager::Connectivity)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x7a4560050280, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:572
        that = 0x7a4560050280
#15 0x00007a456c3b2229 in QtPrivate::QSlotObjectBase::call (this=<optimized out>, r=<optimized out>, a=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:486
No locals.
#16 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4120
        obj = {m_slotObject = std::unique_ptr<QtPrivate::QSlotObjectBase> = {get() = 0x7a4560050280}}
        receiver = 0x7a456003e700
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x7a456003e700, sender = 0x5cea2c1e6780, signal = 3}
        c = 0x5cea2c720000
        connections = <optimized out>
        list = <optimized out>
        inSenderThread = <optimized out>
        highestConnectionId = <optimized out>
        signalVector = 0x5cea2c748e60
        currentThreadId = <optimized out>
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#17 0x00007a456603f773 in KNotification::activate (this=0x5cea2c788a00, actionId=...) at /usr/src/debug/knotifications/knotifications-6.7.0/src/knotification.cpp:383
        action = 0x5cea2c1e6780
        __for_range = <optimized out>
        __for_begin = <optimized out>
        __for_end = <optimized out>
#18 KNotificationManager::notificationActivated (this=0x7a4566065cb0 <_ZZN13QGlobalStaticIN14QtGlobalStatic6HolderIN12_GLOBAL__N_112Q_QGS_s_selfEEEE8instanceEvE6holder.lto_priv.0>, id=18, actionId=...) at /usr/src/debug/knotifications/knotifications-6.7.0/src/knotificationmanager.cpp:150
        n = 0x5cea2c788a00


Bryan, do you remember what you were doing when this happened? And specifically what you clicked on? Was it a "Connect" or "Disconnect" button in a notification? And if so, for what network type?
Comment 5 BryanLiang 2025-08-07 16:27:17 UTC
If I remember correctly, I was using my school network at the time, which requires logging in through a captive portal. After connecting to the Wi-Fi, a login notification appeared in the bottom-right corner. I ignored it and logged in through the browser instead. Even after logging in, the notification remained, and when I clicked the ‘Login’ button on it, `kded` crashed.
Comment 6 Nate Graham 2025-08-08 16:27:08 UTC
Thanks. Any chance you've got a setup to replicate it to see if it still happens in Plasma 6.4 or later?
Comment 7 BryanLiang 2025-08-08 16:39:21 UTC
(In reply to Nate Graham from comment #6)
> Thanks. Any chance you've got a setup to replicate it to see if it still
> happens in Plasma 6.4 or later?

I'm afraid not. I have leaved the school and I cannot find a wifi requiring logging through the portal now.
Comment 8 Nate Graham 2025-08-11 18:20:22 UTC
Thanks. Given that you can't reproduce it anymore and it was reported against an older version of Plasma, I'm afraid there's likely nothing we can do about this.

For what it's worth, I travel fairly frequently and use captive portals a lot, and haven't encountered this crash. I can keep an eye out for it in the future.