Created attachment 186361 [details] The backtrace of the command SUMMARY PlasmaShell crash with i3 on top of KDE. I’m running Arch Linux with i3 on top of KDE and have been using this setup for several months. Two days ago, I updated my system, and after rebooting, plasmashell started crashing in a loop. I suspected I had broken something in my installation, so today I did a clean reinstall. The installation went well. I first booted into pure KDE — everything worked perfectly. Then I installed i3 and booted into it — still no issues. However, after setting up i3 to run over KDE (like before the clean reinstall), the same bug appeared again. Now, I no longer get multiple crash report windows, but the KDE panel (the bar at the bottom with the app launcher, system tray icons, etc.) is missing. I tried restarting plasmashell from Konsole with: ```bash plasmashell --replace ``` And here’s the output: ```text kf.plasma.quick: Applet preload policy set to 1 KCrash: Attempting to start /usr/bin/plasmashell KCrash: Application ‘plasmashell’ crashing… crashRecursionCounter = 2 Segmentation fault (core dumped) plasmashell --replace kf.plasma.quick: Applet preload policy set to 1 ``` On forum, meven a KDE Developper say "A Containment without a parent" I am always with an external screen (connected with HDMI) in complement of my laptopt screen STEPS TO REPRODUCE 1. Install ArchLinux 2. Install KDE and boot on it 3. Install i3 and boot on it 4. Create a .desktop of i3 + kde ```desktop # /usr/share/xsessions/plasma-i3.desktop [Desktop Entry] Type=XSession Exec=env KDEWM=/usr/bin/i3 /usr/bin/startplasma-x11 DesktopNames=KDE Name=Plasma with i3 Comment=Plasma with i3 Window Manager ``` 5. Mask plasma service: ```bash systemctl mask plasma-kwin_x11.service --user ``` 6. Create plasma-i3 service ```service # /home/user/.config/systemd/user/plasma-i3.service [Unit] Description=Launch Plasma with i3 Before=plasma-workspace.target [Service] ExecStart=/usr/bin/i3 Restart=on-failure [Install] WantedBy=plasma-workspace.target ``` 5. Enable the service ```bash systemctl enable plasma-i3 --user ``` 6. Reboot on the .desktop OBSERVED RESULT I see the KDE animation, but i only have i3 module who show. The "KDE panel" is not show. I try to recreate it manualy with ``plasmashell --replace`` but it give me ``Segmentation fault`` (if i systemctl restart the plasma-plasmashell still with --user it exit with error ``plasma-plasmashell.service: Failed with result 'core-dump'.`` EXPECTED RESULT I have the "KDE pannel" working with i3wm like previously (so that mean plasmashell work) **SOFTWARE/OS VERSIONS** Operating System: Arch Linux KDE Plasma Version: 6.5.1 KDE Frameworks Version: 6.19.0 Qt Version: 6.10.0 Kernel Version: 6.17.5-arch1-1 (64-bit) Graphics Platform: X11 **HARDWARE** Processors: 12 × 13th Gen Intel® Core™ i5-1335U Memory: 16 GiB of RAM (15,3 GiB usable) Graphics Processor: Mesa Intel® Iris® Xe Graphics Manufacturer: HP Product Name: HP Pavilion x360 2-in-1 Laptop 14-ek1xxx System Version: Type1ProductConfigId **ADDITIONAL INFORMATION** I came here after post on KDe Forum: https://discuss.kde.org/t/plasmashell-crashes-on-kde-i3-as-wm/41082/8 I have link you backtrace. if you are interest in the output of this following command: ```bash QT_LOGGING_RULES=“*.debug=true” plasmashell --replace 2> plasmashell_replace.log ``` You can have it here: https://paste.hostux.net/?58d88a03042747e9#A5YGH17hmsW3BSm3zvDHRuqKsGEB4YSrtjFZuFKkwADF
#0 QObject::parent (this=<optimized out>, this=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs.h:241 #1 Plasma::Containment::screen (this=<optimized out>) at /usr/src/debug/libplasma/libplasma-6.5.1/src/plasma/containment.cpp:471 #2 0x000055a7fd082f4b in PanelView::canSetStrut (this=0x7f92b8007b30) at /usr/src/debug/plasma-workspace/plasma-workspace-6.5.1/shell/panelview.cpp:1503 #3 PanelView::canSetStrut (this=0x7f92b8007b30) at /usr/src/debug/plasma-workspace/plasma-workspace-6.5.1/shell/panelview.cpp:1479 #4 PanelView::updateExclusiveZone (this=this@entry=0x7f92b8007b30) at /usr/src/debug/plasma-workspace/plasma-workspace-6.5.1/shell/panelview.cpp:1591 #5 0x000055a7fd0836bc in PanelView::updateFloating (this=0x7f92b8007b30) at /usr/src/debug/plasma-workspace/plasma-workspace-6.5.1/shell/panelview.cpp:1961 #6 0x000055a7fd0a5644 in PanelView::PanelView (parent=0x0, this=0x7f92b8007b30, corona=0x7ffe9c6e26b0, targetScreen=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-6.5.1/shell/panelview.cpp:131 #7 ShellCorona::createWaitingPanels (this=0x7ffe9c6e26b0) at /usr/src/debug/plasma-workspace/plasma-workspace-6.5.1/shell/shellcorona.cpp:1613 #8 0x00007f92ccfd716f 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:461 #9 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4255 #10 0x00007f92ccfe439c in QMetaObject::activate<void, QTimer::QPrivateSignal> (sender=<optimized out>, mo=<optimized out>, local_signal_index=0, ret=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:319 #11 QTimer::timeout (this=<optimized out>, _t1=...) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qtimer.cpp:182 #12 QTimer::timerEvent (e=<optimized out>, this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:322 #13 QTimer::timerEvent (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:316 #14 0x00007f92ccfc44f6 in QObject::event (this=<optimized out>, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1386 #15 0x00007f92cf3020a0 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7ffe9c6e27c0, e=0x7ffe9c6e2010) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3307 #16 0x00007f92ccf6a6c8 in QCoreApplication::notifyInternal2 (receiver=0x7ffe9c6e27c0, event=0x7ffe9c6e2010) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109 #17 0x00007f92cd12c6af in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7ffe9c6e2010) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549 #18 QTimerInfoList::activateTimers (this=0x55a8116a8180) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:426 #19 0x00007f92cd24dad1 in timerSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:152 #20 idleTimerSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:199 #21 0x00007f92cbb3ff8d in g_main_dispatch (context=0x7f92c0000f60) at ../glib/glib/gmain.c:3565 #22 0x00007f92cbb41657 in g_main_context_dispatch_unlocked (context=0x7f92c0000f60) at ../glib/glib/gmain.c:4425 #23 g_main_context_iterate_unlocked (context=context@entry=0x7f92c0000f60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4490 #24 0x00007f92cbb41865 in g_main_context_iteration (context=0x7f92c0000f60, may_block=1) at ../glib/glib/gmain.c:4556 #25 0x00007f92cd24a9d2 in QEventDispatcherGlib::processEvents (this=0x55a8116e6080, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399 #26 0x00007f92ccf75a86 in QEventLoop::processEvents (this=0x7ffe9c6e22e0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104 #27 QEventLoop::exec (this=0x7ffe9c6e22e0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186 #28 0x00007f92ccf6f171 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1452 #29 0x00007f92cf2fd31a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2574 #30 0x000055a7fd0652d9 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-6.5.1/shell/main.cpp:188
*** Bug 511452 has been marked as a duplicate of this bug. ***
I think the commit at fault is: https://invent.kde.org/plasma/libplasma/-/commit/3ad38c1677df6e466d29c51594168aebb5c47c89
Created attachment 186677 [details] The backstrace with kscreen installed
Created attachment 186678 [details] The backtrace without kscreen
Hello, The time has pass since my bug report. I don't know how but i manage to fix the isse some day ago. Today i was trying to fix issue with my screen qualify after reboot and i have found something interesting with kscreen package. Without the package the `plasmashell --no-respawn &` work well, but after install the package and reboot it i have the same "Segmentation fault" error. I have link you the 2 backtrace, one with kscreen installed post reboot and one without it also post reboot.
(In reply to SepiaRovilher from comment #6) > Hello, > The time has pass since my bug report. I don't know how but i manage to fix > the isse some day ago. Today i was trying to fix issue with my screen > qualify after reboot and i have found something interesting with kscreen > package. Without the package the `plasmashell --no-respawn &` work well, but > after install the package and reboot it i have the same "Segmentation fault" > error. > I have link you the 2 backtrace, one with kscreen installed post reboot and > one without it also post reboot. I followed that idea I found a workaround: stop the kscreen service: systemctl --user stop plasma-kscreen.service systemctl --user restart plasma-plasmashell.service systemctl --user start plasma-kscreen.service
(In reply to Björn Bidar (Thaodan) from comment #7) > (In reply to SepiaRovilher from comment #6) > > Hello, > > The time has pass since my bug report. I don't know how but i manage to fix > > the isse some day ago. Today i was trying to fix issue with my screen > > qualify after reboot and i have found something interesting with kscreen > > package. Without the package the `plasmashell --no-respawn &` work well, but > > after install the package and reboot it i have the same "Segmentation fault" > > error. > > I have link you the 2 backtrace, one with kscreen installed post reboot and > > one without it also post reboot. > > I followed that idea I found a workaround: > stop the kscreen service: > systemctl --user stop plasma-kscreen.service > systemctl --user restart plasma-plasmashell.service > systemctl --user start plasma-kscreen.service Only works when only one screen is connected.
(In reply to Björn Bidar (Thaodan) from comment #3) > I think the commit at fault is: > https://invent.kde.org/plasma/libplasma/-/commit/ > 3ad38c1677df6e466d29c51594168aebb5c47c89 No relation I think. The crash happens with and without the commit.
My backtrace: #0 0x00007ff640e9dd3c in __pthread_kill_implementation () at /lib64/libc.so.6 #1 0x00007ff640e427b6 in raise () at /lib64/libc.so.6 #2 0x00007ff644577350 in KCrash::defaultCrashHandler(int) () at /lib64/libKF6Crash.so.6 #3 0x00007ff640e42910 in <signal handler called> () at /lib64/libc.so.6 #4 QObject::parent (this=<optimized out>, this=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs.h:241 #5 Plasma::Containment::screen (this=<optimized out>) at /usr/src/debug/libplasma-6.5.2/src/plasma/containment.cpp:471 #6 0x0000557b9e2a0100 in PanelView::canSetStrut (this=0x557baa62cb40) at /usr/src/debug/plasma-workspace-6.5.2/shell/panelview.cpp:1503 #7 PanelView::canSetStrut (this=0x557baa62cb40) at /usr/src/debug/plasma-workspace-6.5.2/shell/panelview.cpp:1479 #8 PanelView::updateExclusiveZone (this=0x557baa62cb40) at /usr/src/debug/plasma-workspace-6.5.2/shell/panelview.cpp:1591 #9 0x0000557b9e2a07d2 in PanelView::updateFloating (this=0x557baa62cb40) at /usr/src/debug/plasma-workspace-6.5.2/shell/panelview.cpp:1961 #10 0x0000557b9e2c07aa in PanelView::PanelView (parent=0x0, this=0x557baa62cb40, corona=0x7ffea3ab44b0, targetScreen=<optimized out>) at /usr/src/debug/plasma-workspace-6.5.2/shell/panelview.cpp:131 #11 ShellCorona::createWaitingPanels (this=0x7ffea3ab44b0) at /usr/src/debug/plasma-workspace-6.5.2/shell/shellcorona.cpp:1613 #12 0x00007ff641835c20 in ??? () at /lib64/libQt6Core.so.6 #13 0x00007ff64183c0c3 in QTimer::timeout(QTimer::QPrivateSignal) () at /lib64/libQt6Core.so.6 #14 0x00007ff641823626 in QObject::event(QEvent*) () at /lib64/libQt6Core.so.6 #15 0x00007ff643be7918 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6 #16 0x00007ff6417cdc98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt6Core.so.6 #17 0x00007ff6419729bc in QTimerInfoList::activateTimers() () at /lib64/libQt6Core.so.6 #18 0x00007ff641a95f64 in ??? () at /lib64/libQt6Core.so.6 #19 0x00007ff6400f8b36 in g_main_dispatch (context=0x7ff634000f60) at ../glib/gmain.c:3565 #20 g_main_context_dispatch_unlocked (context=context@entry=0x7ff634000f60) at ../glib/gmain.c:4425 #21 0x00007ff6400fba28 in g_main_context_iterate_unlocked (context=context@entry=0x7ff634000f60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4490 #22 0x00007ff6400fc26c in g_main_context_iteration (context=0x7ff634000f60, may_block=1) at ../glib/gmain.c:4556 #23 0x00007ff641a94038 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6 #24 0x00007ff6417dc12b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt6Core.so.6 #25 0x00007ff6417d2bd3 in QCoreApplication::exec() () at /lib64/libQt6Core.so.6 #26 0x0000557b9e283298 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace-6.5.2/shell/main.cpp:188
*** This bug has been marked as a duplicate of bug 511256 ***
(In reply to Harald Sitter from comment #11) > > *** This bug has been marked as a duplicate of bug 511256 *** The two bugs are unrelated. Both use i3 but the other one is due to the users setup not to this SEGV in Plasma::Containment::screen().
*** Bug 512524 has been marked as a duplicate of this bug. ***
*** Bug 512726 has been marked as a duplicate of this bug. ***
I have almost the same setup: ArchLinux, Plasma >= 6.5.0, i3 and multiple screens. With kscreen, I have the same stacktrace, crash at `PanelView::canSetStrut ` and more precisely at `if (id == containment()->screen()) {` because `containment()` returns a null pointer ( https://invent.kde.org/plasma/plasma-workspace/-/blob/24a15324e4f360b2d5162655d962c6f7838e66b1/shell/panelview.cpp#L1505 ) After bisecting plasma-worskspace, I think the commit at fault is https://invent.kde.org/plasma/plasma-workspace/-/commit/cbfa8d76d089d7e934d2b4cfe8d917a6df1a37ef Before this commit, the crash doesn't happen, and it seems coherent with the current crash because after the commit, we are not checking if `containment()` is null anymore. My workaround is to bring back the `!containment()` condition in the two modified `if` and after recompiling, it works for 6.5.3. However, I'm not really sure if it is the root cause of the bug, I never read Plasma code before. I hope that it helps you.
Same sympoms for me using bspwm wiht plasma instaed of i3, suggesting this affects all users not using kwon, not just i3 users.
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6089
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6090
This is the #6 crash in plasma right now; raising priority.
*** Bug 513455 has been marked as a duplicate of this bug. ***