Bug 436041 - plasmashell crashes at start
Summary: plasmashell crashes at start
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: master
Platform: Other Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-04-22 10:57 UTC by Nicolas Fella
Modified: 2021-04-27 11:20 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Fella 2021-04-22 10:57:39 UTC
With current master plasmashell crashes shortly after the process started

Application: Plasma (plasmashell), signal: Segmentation fault
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7f988a6090c0 (LWP 5446))]
[KCrash Handler]
#5  Plasma::Applet::config() const (this=0x0) at /home/nico/kde/src/plasma-framework/src/plasma/applet.cpp:253
#6  0x00007f987c0ea29c in AppletsLayout::AppletsLayout(QQuickItem*)::$_1::operator()() const (this=<optimized out>) at /home/nico/kde/src/plasma-workspace/components/containmentlayoutmanager/appletslayout.cpp:66
#7  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, AppletsLayout::AppletsLayout(QQuickItem*)::$_1>::call(AppletsLayout::AppletsLayout(QQuickItem*)::$_1&, void**) (f=<optimized out>, arg=<optimized out>) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:146
#8  QtPrivate::Functor<AppletsLayout::AppletsLayout(QQuickItem*)::$_1, 0>::call<QtPrivate::List<>, void>(AppletsLayout::AppletsLayout(QQuickItem*)::$_1&, void*, void**) (f=<optimized out>, arg=<optimized out>) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:256
#9  QtPrivate::QFunctorSlotObject<AppletsLayout::AppletsLayout(QQuickItem*)::$_1, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=<optimized out>, r=0x2cb0540, a=0x7ffe802976d0, ret=0x0) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:443
#10 0x00007f988ccd77a4 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffe802976d0, r=0x2cb0540, this=0x3523a40) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#11 doActivate<false>(QObject*, int, void**) (sender=0x3523960, signal_index=3, argv=argv@entry=0x7ffe802976d0) at kernel/qobject.cpp:3886
#12 0x00007f988ccd0ef0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f988cf74260 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe802976d0) at kernel/qobject.cpp:3946
#13 0x00007f988ccdb44a in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
#14 0x00007f988cccdb9f in QObject::event(QEvent*) (this=0x3523960, e=0x7ffe80297820) at kernel/qobject.cpp:1336
#15 0x00007f988dbf4a6f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x3523960, e=0x7ffe80297820) at kernel/qapplication.cpp:3632
#16 0x00007f988cca2e5a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x3523960, event=0x7ffe80297820) at kernel/qcoreapplication.cpp:1064
#17 0x00007f988ccf6673 in QTimerInfoList::activateTimers() (this=0x19593a0) at kernel/qtimerinfo_unix.cpp:643
#18 0x00007f988ccf6e7c in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#19 idleTimerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=source@entry=0x1954610) at kernel/qeventdispatcher_glib.cpp:230
#20 0x00007f988b3a67e7 in g_main_dispatch (context=0x7f9880005000) at ../glib/gmain.c:3337
#21 g_main_context_dispatch (context=0x7f9880005000) at ../glib/gmain.c:4055
#22 0x00007f988b3a6b68 in g_main_context_iterate (context=context@entry=0x7f9880005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4131
#23 0x00007f988b3a6c1f in g_main_context_iteration (context=0x7f9880005000, may_block=may_block@entry=1) at ../glib/gmain.c:4196
#24 0x00007f988ccf71a0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x19595d0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#25 0x00007f988cca19fb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffe80297a50, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#26 0x00007f988cca95fc in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#27 0x0000000000428c89 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde/src/plasma-workspace/shell/main.cpp:251
[Inferior 1 (process 5446) detached]
Comment 1 Nate Graham 2021-04-22 18:11:33 UTC
Cannot reproduce with Folder View containment FWIW.
Comment 2 Nicolas Fella 2021-04-23 23:43:23 UTC
Output from plasmashell process:

kf.plasma.quick: Applet preload policy set to 1
trying to show an empty dialog
QIcon("document-new",availableSizes[normal,Off]=(QSize(16, 16), QSize(22, 22), QSize(32, 32), QSize(48, 48), QSize(64, 64), QSize(128, 128), QSize(256, 256)),cacheKey=0xd00000000)
trying to show an empty dialog
file:///home/nico/kde/usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
file:///home/nico/kde/usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:146:19: QML Loader: Binding loop detected for property "height"
qt.svg: <input>:406:376: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:407:130: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:408:130: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:408:393: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:409:130: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:410:129: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:411:129: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:412:129: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:413:129: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:413:379: Could not add child element to parent element because the types are incorrect.
qt.svg: <input>:413:631: Could not add child element to parent element because the types are incorrect.
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.
file:///home/nico/kde/usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/DigitalClock.qml:527:9: QML Label: Binding loop detected for property "height"
file:///home/nico/kde/usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/DigitalClock.qml:486:13: QML Label: Binding loop detected for property "height"
trying to show an empty dialog
Error: cannot change the containment to AppletsLayout
org.kde.plasma.notifications: Registered JobViewServer service on DBus
trying to show an empty dialog
file:///home/nico/kde/usr/share/plasma/plasmoids/org.kde.panel/contents/ui/main.qml:30:1: QML DropArea (parent or ancestor of QQuickLayoutAttached): Binding loop detected for property "minimumWidth"
file:///home/nico/kde/usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/DigitalClock.qml:486:13: QML Label: Binding loop detected for property "height"
file:///home/nico/kde/usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/DigitalClock.qml:527:9: QML Label: Binding loop detected for property "height"
file:///home/nico/kde/usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/DigitalClock.qml:547:5: QML Label: Binding loop detected for property "height"
trying to show an empty dialog
file:///home/nico/kde/usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Panel.qml:207: Error: Invalid write to global property "prefix"
file:///home/nico/kde/usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Panel.qml:26:1: QML Panel: Binding loop detected for property "state"
Plasma Shell startup completed
KCrash: Application 'plasmashell' crashing...
KCrash: Attempting to start /home/nico/kde/usr/lib64/libexec/drkonqi
[1]  + 802 suspended (signal)  plasmashell -n
Comment 4 Luca Beltrame 2021-04-24 22:01:08 UTC
Confirmed. Reverting the commit isn't enough because there are also changes in p-d that need to be done ("fallbackConfigKey" in org.kde.plasma.desktop/main.qml).
Comment 5 Luca Beltrame 2021-04-24 22:04:02 UTC
(In reply to Luca Beltrame from comment #4)

> in p-d that need to be done ("fallbackConfigKey" in
> org.kde.plasma.desktop/main.qml).

Rather, reverting the commit makes the fallbackConfigKey in p-d not readable anymore (at least when I tried).
Comment 6 Luca Beltrame 2021-04-24 22:08:08 UTC
Scratch that, I probably did something wrong in my checkout.
Comment 7 Luca Beltrame 2021-04-24 22:16:02 UTC
Git commit 1d68bc118a1b0eb0e3ce1bc25c17c781cd6cead5 by Luca Beltrame.
Committed on 24/04/2021 at 22:15.
Pushed by lbeltrame into branch 'master'.

Revert "Save layouts per-resolution"

This reverts commit 1390b55188e032336a9e92fb74bd55260493f1eb.

At least this prevents plasmashell from crashing until a solution is
found.

CCMAIL: notmart@gmail.com
CCMAIL: plasma-devel@kde.org

M  +1    -3    containments/desktop/package/contents/ui/main.qml

https://invent.kde.org/plasma/plasma-desktop/commit/1d68bc118a1b0eb0e3ce1bc25c17c781cd6cead5
Comment 8 Luca Beltrame 2021-04-24 22:16:05 UTC
Git commit ea95ebd0cdc8991938994daadaccea883ceabacc by Luca Beltrame.
Committed on 24/04/2021 at 22:15.
Pushed by lbeltrame into branch 'master'.

Revert "don't make config key change and size change conflict"

This reverts commit 156509b785b6b4312d984841f9ba6375687389d3.

At least this prevents plasmashell from crashing until a solution is
found.

CCMAIL: notmart@gmail.com
CCMAIL: plasma-devel@kde.org

M  +32   -58   components/containmentlayoutmanager/appletslayout.cpp
M  +2    -22   components/containmentlayoutmanager/appletslayout.h

https://invent.kde.org/plasma/plasma-workspace/commit/ea95ebd0cdc8991938994daadaccea883ceabacc
Comment 9 Bug Janitor Service 2021-04-26 14:02:29 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/817
Comment 10 Marco Martin 2021-04-27 11:20:35 UTC
Git commit 66f620995bdfdc21d1a22e5ec18170ed5ff4d2ed by Marco Martin.
Committed on 27/04/2021 at 11:20.
Pushed by mart into branch 'master'.

Don't assume m_containment is there

The containment property is assigned from qml so it can be bull. Also, if this component is used in a plasmoid that can run also in normal applet mode (i.e. folderview) it will be null in that case.

if we don't have a containment assigned yet, just do nothing in the signal handlers as they are supposed to read and write from the containment config

M  +68   -32   components/containmentlayoutmanager/appletslayout.cpp
M  +22   -2    components/containmentlayoutmanager/appletslayout.h

https://invent.kde.org/plasma/plasma-workspace/commit/66f620995bdfdc21d1a22e5ec18170ed5ff4d2ed