Bug 453726

Summary: Removing panel with system tray applet crashes plasmashell
Product: [Plasma] plasmashell Reporter: Fushan Wen <qydwhotmail>
Component: System TrayAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: baroncs1, bugseforuns, dhanav, ferenosdev, gurpreet88.sandhu, materka, nate
Priority: HI Keywords: drkonqi
Version: master   
Target Milestone: 1.0   
Platform: openSUSE   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=473980
Latest Commit: Version Fixed In: 5.24.6

Description Fushan Wen 2022-05-13 06:25:46 UTC
SUMMARY
plasmashell crashes after a panel with a system tray applet is removed (after clicking the close button in the undo notification to fully remove the panel).


STEPS TO REPRODUCE
1. Remove a panel with a system tray applet
2. Click the close button in the undo notification

OBSERVED RESULT
Crash

EXPECTED RESULT
No crash

SOFTWARE/OS VERSIONS
Information for package plasma5-workspace:
------------------------------------------
Repository     : @System
Name           : plasma5-workspace
Version        : 5.24.80git.20220512T172107~ce8b46ec-ku.113.1
Arch           : x86_64
Vendor         : obs://build.opensuse.org/KDE:Unstable
Installed Size : 27.5 MiB
Installed      : Yes
Status         : up-to-date
Source package : plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.src
Upstream URL   : http://www.kde.org/
Summary        : The KDE Plasma Workspace Components
Description    : 
    This package contains the basic packages for a Plasma workspace.


ADDITIONAL INFORMATION
(gdb) bt
#0  0x00007f162b485ca4 in SystemTray::onEnabledAppletsChanged() (this=0x55cbb6a17740)
    at /usr/src/debug/plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.x86_64/applets/systemtray/systemtray.cpp:288
#1  0x00007f163f62b453 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffef86453e0, r=0x55cbb6a17740, this=0x55cbb18b5b10)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#2  doActivate<false>(QObject*, int, void**) (sender=0x55cbb227f6b0, signal_index=4, argv=0x7ffef86453e0) at kernel/qobject.cpp:3886
#3  0x00007f163f6247af in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x55cbb227f6b0, m=m@entry=0x7f162b4b2480 <SystemTraySettings::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffef86453e0) at kernel/qobject.cpp:3946
#4  0x00007f162b496b09 in SystemTraySettings::enabledPluginsChanged(QStringList const&, QStringList const&)
    (_t2=..., _t1=..., this=0x55cbb227f6b0)
    at /usr/src/debug/plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.x86_64/build/applets/systemtray/systemtraymodel_static_autogen/EWIEGA46WW/moc_systemtraysettings.cpp:152
#5  SystemTraySettings::notifyAboutChangedEnabledPlugins(QStringList const&, QStringList const&)
    (enabledPluginsNew=..., enabledPluginsOld=..., this=0x55cbb227f6b0)
    at /usr/src/debug/plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.x86_64/applets/systemtray/systemtraysettings.cpp:163
#6  SystemTraySettings::loadConfig() (this=0x55cbb227f6b0)
    at /usr/src/debug/plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.x86_64/applets/systemtray/systemtraysettings.cpp:120
#7  0x00007f163f62b453 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffef86454c0, r=0x55cbb227f6b0, this=0x55cbb227efc0)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate<false>(QObject*, int, void**) (sender=0x55cbb227e4f0, signal_index=3, argv=0x7ffef86454c0) at kernel/qobject.cpp:3886
#9  0x00007f16401d02c8 in KCoreConfigSkeleton::save() (this=0x55cbb227e4f0)
    at /usr/src/debug/kconfig-5.94.0git.20220504T093732~a0bf7b8-ku.4.1.x86_64/src/core/kcoreconfigskeleton.cpp:1245
#10 0x00007f164161cded in KDeclarative::ConfigPropertyMapPrivate::writeConfig() (this=0x55cbb43e5ae0)
    at /usr/src/debug/kdeclarative-5.94.0git.20220511T221457~22f6b1e-ku.4.1.x86_64/src/kdeclarative/configpropertymap.cpp:139
#11 KDeclarative::ConfigPropertyMap::~ConfigPropertyMap() (this=0x55cbb443f9e0, this=<optimized out>)
    at /usr/src/debug/kdeclarative-5.94.0git.20220511T221457~22f6b1e-ku.4.1.x86_64/src/kdeclarative/configpropertymap.cpp:65
#12 0x00007f164161ce19 in KDeclarative::ConfigPropertyMap::~ConfigPropertyMap() (this=0x55cbb443f9e0, this=<optimized out>)
    at /usr/src/debug/kdeclarative-5.94.0git.20220511T221457~22f6b1e-ku.4.1.x86_64/src/kdeclarative/configpropertymap.cpp:68
#13 0x00007f163f61e99e in QObjectPrivate::deleteChildren() (this=0x55cbb6a1c7f0) at kernel/qobject.cpp:2104
#14 0x00007f163f629664 in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1082
#15 0x00007f163883ebca in ContainmentInterface::~ContainmentInterface() (this=0x55cbb6a15e20, this=<optimized out>)
    at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/scriptengines/qml/plasmoid/containmentinterface.h:38
#16 ContainmentInterface::~ContainmentInterface() (this=0x55cbb6a15e20, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/scriptengines/qml/plasmoid/containmentinterface.h:38
#17 0x00007f163f61e99e in QObjectPrivate::deleteChildren() (this=0x55cbb6a37b00) at kernel/qobject.cpp:2104
#18 0x00007f163f629664 in QObject::~QObject() (this=this@entry=0x55cbb6a22150, __in_chrg=<optimized out>) at kernel/qobject.cpp:1082
#19 0x00007f16416f1863 in Plasma::ScriptEngine::~ScriptEngine() (this=this@entry=0x55cbb6a22150, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/plasma/scripting/scriptengine.cpp:48
#20 0x00007f16416f18be in Plasma::AppletScript::~AppletScript() (this=this@entry=0x55cbb6a22150, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/plasma/scripting/appletscript.cpp:35
#21 0x00007f16388317fb in DeclarativeAppletScript::~DeclarativeAppletScript() (this=0x55cbb6a22150, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/scriptengines/qml/plasmoid/declarativeappletscript.cpp:68
#22 DeclarativeAppletScript::~DeclarativeAppletScript() (this=0x55cbb6a22150, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/scriptengines/qml/plasmoid/declarativeappletscript.cpp:68
#23 0x00007f16416c248a in Plasma::AppletPrivate::~AppletPrivate() (this=0x55cbb6a16c80, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/plasma/private/applet_p.cpp:89
#24 0x00007f16416b4174 in Plasma::AppletPrivate::~AppletPrivate() (this=0x55cbb6a16c80, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/plasma/private/applet_p.cpp:83
#25 Plasma::Applet::~Applet() (this=this@entry=0x55cbb6a17740, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/plasma/applet.cpp:165
#26 0x00007f16416b43a0 in Plasma::Containment::~Containment() (this=this@entry=0x55cbb6a17740, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/plasma/containment.cpp:83
#27 0x00007f162b47d8ec in SystemTray::~SystemTray() (this=0x55cbb6a17740, this=<optimized out>) at /usr/src/debug/plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.x86_64/applets/systemtray/systemtray.cpp:38
#28 SystemTray::~SystemTray() (this=0x55cbb6a17740, this=<optimized out>) at /usr/src/debug/plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.x86_64/applets/systemtray/systemtray.cpp:38
#29 0x00007f163f61e99e in QObjectPrivate::deleteChildren() (this=0x55cbb6a1a6e0) at kernel/qobject.cpp:2104
#30 0x00007f163f629664 in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1082
#31 0x00007f162b5a7699 in SystemTrayContainer::~SystemTrayContainer() (this=0x55cbb6a15960, this=<optimized out>) at /usr/src/debug/plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.x86_64/applets/systemtray/container/systemtraycontainer.cpp:24
#32 0x00007f163f61e99e in QObjectPrivate::deleteChildren() (this=0x55cbb668eb70) at kernel/qobject.cpp:2104
#33 0x00007f163f629664 in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1082
#34 0x00007f16416b4479 in Plasma::Containment::~Containment() (this=0x55cbb65b1400, this=<optimized out>) at /usr/src/debug/plasma-framework-5.94.0git.20220512T145121~b214c9ad-ku.26.1.x86_64/src/plasma/containment.cpp:83
#35 0x00007f163f62102f in QObject::event(QEvent*) (this=0x55cbb65b1400, e=0x55cbb7eefcd0) at kernel/qobject.cpp:1301
#36 0x00007f1640394b0f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55cbb65b1400, e=0x55cbb7eefcd0) at kernel/qapplication.cpp:3632
#37 0x00007f163f5f4b5a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55cbb65b1400, event=0x55cbb7eefcd0) at kernel/qcoreapplication.cpp:1064
#38 0x00007f163f5f7b97 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55cbb154aa90) at kernel/qcoreapplication.cpp:1821
#39 0x00007f163f64cc33 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0x55cbb16585e0) at kernel/qeventdispatcher_glib.cpp:277
#40 0x00007f163d8f9122 in g_main_dispatch (context=0x7f1634005010) at ../glib/gmain.c:3417
#41 g_main_context_dispatch (context=0x7f1634005010) at ../glib/gmain.c:4135
#42 0x00007f163d8f94b8 in g_main_context_iterate (context=context@entry=0x7f1634005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4211
#43 0x00007f163d8f956f in g_main_context_iteration (context=0x7f1634005010, may_block=1) at ../glib/gmain.c:4276
#44 0x00007f163f64c2b4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55cbb166a6f0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#45 0x00007f163f5f355b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffef8645d70, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#46 0x00007f163f5fb820 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#47 0x00007f163fa4561c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867
#48 0x00007f1640394a85 in QApplication::exec() () at kernel/qapplication.cpp:2824
#49 0x000055cbb05b9192 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma5-workspace-5.24.80git.20220512T172107~ce8b46ec-ku.113.1.x86_64/shell/main.cpp:240
Comment 2 Fushan Wen 2022-05-13 07:57:10 UTC
Git commit 6da91d053b4f142277d60db4a1a17eded9249d11 by Fushan Wen.
Committed on 13/05/2022 at 07:44.
Pushed by fusionfuture into branch 'master'.

applets/systemtray: disconnect KConfigLoader signal when instance is about to be deleted

When an applet is about to be deleted, it will save its config
automatically, but in this case the system tray doesn't need to load the
config again.

M  +3    -0    applets/systemtray/systemtray.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/6da91d053b4f142277d60db4a1a17eded9249d11
Comment 3 Fushan Wen 2022-05-13 07:57:57 UTC
Git commit b7a148ec05e25a98a7e41c49191d5ffeeacaaf68 by Fushan Wen.
Committed on 13/05/2022 at 07:57.
Pushed by fusionfuture into branch 'Plasma/5.24'.

applets/systemtray: disconnect KConfigLoader signal when instance is about to be deleted

When an applet is about to be deleted, it will save its config
automatically, but in this case the system tray doesn't need to load the
config again.


(cherry picked from commit 6da91d053b4f142277d60db4a1a17eded9249d11)

M  +3    -0    applets/systemtray/systemtray.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/b7a148ec05e25a98a7e41c49191d5ffeeacaaf68
Comment 4 Nate Graham 2022-05-13 15:34:26 UTC
*** Bug 451053 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2023-01-17 22:06:19 UTC
*** Bug 451114 has been marked as a duplicate of this bug. ***
Comment 6 Nate Graham 2023-01-17 22:06:23 UTC
*** Bug 451791 has been marked as a duplicate of this bug. ***
Comment 7 Nate Graham 2023-01-17 22:06:27 UTC
*** Bug 451864 has been marked as a duplicate of this bug. ***
Comment 8 Nate Graham 2023-01-17 22:06:30 UTC
*** Bug 454857 has been marked as a duplicate of this bug. ***