Bug 422914 - Plasmashell crashes in Plasma::Containment::appletAdded() immediately after login
Summary: Plasmashell crashes in Plasma::Containment::appletAdded() immediately after l...
Status: RESOLVED FIXED
Alias: None
Product: libplasma
Classification: Frameworks and Libraries
Component: libplasma (show other bugs)
Version: 5.77.0
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Marco Martin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-13 12:48 UTC by dezifit
Modified: 2021-04-05 02:50 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.21.4


Attachments
backtrace of plasmashell while adding a spacer (17.77 KB, text/plain)
2020-06-14 08:42 UTC, dezifit
Details
Crash with Plasma 5.20.4 (14.84 KB, text/plain)
2020-12-18 17:53 UTC, dezifit
Details

Note You need to log in before you can comment on or make changes to this bug.
Description dezifit 2020-06-13 12:48:21 UTC
SUMMARY
Updated a 32-Bit system to plasma 5.19. Existing panel configuration causes plasmashell to crash immediately after login. Have to start with a new configuration (removed plasma-org.kde.plasma.desktop-appletsrc).

As it seems, adding spacers to new configured panels also crashes plasma.

STEPS TO REPRODUCE
1. Add empty panel to the desktop (for example at the right border)
2. Add a quick start widget
3. Add a spacer -> crash

OBSERVED RESULT
Plasmashell crashes with spacers in panels. Happens with panels configured before update to 5.19 as well as "new" panels (after plasma-org.kde.plasma.desktop-appletsrc is cleared/removed).

EXPECTED RESULT
Widgets and spacers in panels should be allowed and resizeable.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Void Linux, Kernel 5.4.46 i686
KDE Plasma Version: 5.19.0
KDE Frameworks Version: 5.70.0
Qt Version: 5.14.2

ADDITIONAL INFORMATION
Updating a 64-Bit system with the same panel layout didn't crash plasma. but completely shattered the panel layout (filed another bug).
Comment 1 David Edmundson 2020-06-13 23:29:51 UTC
We can't do much without a backtrace.
Comment 2 dezifit 2020-06-14 08:42:26 UTC
Created attachment 129338 [details]
backtrace of plasmashell while adding a spacer

Hopefully the login crash is caused by the same reason: it would be difficult to attach a debugger within the login procedure ...
Comment 3 dezifit 2020-06-15 15:45:04 UTC
Chaged status
Comment 4 Nate Graham 2020-12-17 19:36:04 UTC
Relevant bits:

#29 0xb7b7e0d9 in KDeclarative::QmlObject::completeInitialization(QHash<QString, QVariant> const&) () from target:/usr/lib32/libKF5Declarative.so.5                                                                                                                             
#30 0xb7f72ae9 in PlasmaQuick::AppletQuickItem::init() () from target:/usr/lib32/libKF5PlasmaQuick.so.5
#31 0xaf556847 in ?? () from target:/usr/lib/qt5/plugins/plasma/scriptengines/plasma_appletscript_declarative.so
#32 0xb7f74719 in PlasmaQuick::AppletQuickItem::itemChange(QQuickItem::ItemChange, QQuickItem::ItemChangeData const&) () from target:/usr/lib32/libKF5PlasmaQuick.so.5                                                                                                          
#33 0xb7829ae5 in QQuickItemPrivate::itemChange(QQuickItem::ItemChange, QQuickItem::ItemChangeData const&) () from target:/usr/lib32/libQt5Quick.so.5                                                                                                                           
#34 0xb782e55c in QQuickItemPrivate::refWindow(QQuickWindow*) () from target:/usr/lib32/libQt5Quick.so.5
#35 0xb7831208 in QQuickItem::setParentItem(QQuickItem*) () from target:/usr/lib32/libQt5Quick.so.5
#36 0xb78359d4 in ?? () from target:/usr/lib32/libQt5Quick.so.5
#37 0xb7835f98 in QQuickItem::qt_metacall(QMetaObject::Call, int, void**) () from target:/usr/lib32/libQt5Quick.so.5
#38 0xb7f747e2 in PlasmaQuick::AppletQuickItem::qt_metacall(QMetaObject::Call, int, void**) () from target:/usr/lib32/libKF5PlasmaQuick.so.5                                                                                                                                    
#39 0xaf5579b2 in ?? () from target:/usr/lib/qt5/plugins/plasma/scriptengines/plasma_appletscript_declarative.so
#40 0xb5ac826e in QMetaProperty::write(QObject*, QVariant const&) const () from target:/usr/lib32/libQt5Core.so.5
#41 0xb5af4f53 in QObject::setProperty(char const*, QVariant const&) () from target:/usr/lib32/libQt5Core.so.5
#42 0xaf55a86e in ?? () from target:/usr/lib/qt5/plugins/plasma/scriptengines/plasma_appletscript_declarative.so
#43 0xb5af64b9 in ?? () from target:/usr/lib32/libQt5Core.so.5
#44 0xb7bbeb25 in Plasma::Containment::appletAdded(Plasma::Applet*) () from target:/usr/lib32/libKF5Plasma.so.5
#45 0xb7bc1083 in Plasma::Containment::addApplet(Plasma::Applet*) () from target:/usr/lib32/libKF5Plasma.so.5
#46 0xb7bd99b2 in ?? () from target:/usr/lib32/libKF5Plasma.so.5
#47 0xb7bbf4e5 in Plasma::Containment::createApplet(QString const&, QList<QVariant> const&) () from target:/usr/lib32/libKF5Plasma.so.5


Are you still seeing this in Plasma 5.20?
Comment 5 dezifit 2020-12-18 17:51:26 UTC
Yes, trying to add a spacer into a panel still segfaults with Plasma 5.20.4, see new attachment.
Comment 6 dezifit 2020-12-18 17:53:00 UTC
Created attachment 134187 [details]
Crash with Plasma 5.20.4
Comment 7 Nate Graham 2020-12-18 19:14:46 UTC
Thanks for confirming.
Comment 8 justin 2021-04-03 19:58:29 UTC
Can confirm the same bug for x86-64-musl on void linux.
Comment 10 Nate Graham 2021-04-05 02:49:07 UTC
Git commit 3691730899ec19da2dd939a1aad91c166f3c2944 by Nate Graham, on behalf of John Zimmermann.
Committed on 05/04/2021 at 02:44.
Pushed by ngraham into branch 'master'.

Make sure that *m_twinSpacer is iniitialized in panelspacer

This fixes a segfault of panelspacer on musl and 32bit glibc
systems.

M  +1    -1    applets/panelspacer/plugin/panelspacer.h

https://invent.kde.org/plasma/plasma-workspace/commit/3691730899ec19da2dd939a1aad91c166f3c2944
Comment 11 Nate Graham 2021-04-05 02:49:55 UTC
Git commit 1f244ed71f4992e6d18d255798a03c19dcbfb057 by Nate Graham, on behalf of John Zimmermann.
Committed on 05/04/2021 at 02:49.
Pushed by ngraham into branch 'Plasma/5.21'.

Make sure that *m_twinSpacer is iniitialized in panelspacer

This fixes a segfault of panelspacer on musl and 32bit glibc
systems.


(cherry picked from commit 3691730899ec19da2dd939a1aad91c166f3c2944)

M  +1    -1    applets/panelspacer/plugin/panelspacer.h

https://invent.kde.org/plasma/plasma-workspace/commit/1f244ed71f4992e6d18d255798a03c19dcbfb057