Bug 511428 - PlasmaShell crashes in Plasma::Containment::screen() with i3 on top of KDE
Summary: PlasmaShell crashes in Plasma::Containment::screen() with i3 on top of KDE
Status: ASSIGNED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Containment (other bugs)
Version First Reported In: 6.5.1
Platform: Arch Linux Linux
: HI crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
: 511452 512524 512726 513455 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-10-31 13:00 UTC by SepiaRovilher
Modified: 2025-12-18 20:54 UTC (History)
10 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/113276/


Attachments
The backtrace of the command (47.60 KB, text/plain)
2025-10-31 13:00 UTC, SepiaRovilher
Details
The backstrace with kscreen installed (22.96 KB, text/plain)
2025-11-10 19:12 UTC, SepiaRovilher
Details
The backtrace without kscreen (48.64 KB, text/plain)
2025-11-10 19:12 UTC, SepiaRovilher
Details

Note You need to log in before you can comment on or make changes to this bug.
Description SepiaRovilher 2025-10-31 13:00:33 UTC
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
Comment 1 Nicolas Fella 2025-10-31 13:21:38 UTC
#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
Comment 2 TraceyC 2025-11-03 23:50:22 UTC
*** Bug 511452 has been marked as a duplicate of this bug. ***
Comment 3 Björn Bidar (Thaodan) 2025-11-08 14:15:07 UTC
I think the commit at fault is:
https://invent.kde.org/plasma/libplasma/-/commit/3ad38c1677df6e466d29c51594168aebb5c47c89
Comment 4 SepiaRovilher 2025-11-10 19:12:35 UTC
Created attachment 186677 [details]
The backstrace with kscreen installed
Comment 5 SepiaRovilher 2025-11-10 19:12:56 UTC
Created attachment 186678 [details]
The backtrace without kscreen
Comment 6 SepiaRovilher 2025-11-10 19:16:18 UTC
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.
Comment 7 Björn Bidar (Thaodan) 2025-11-16 21:36:49 UTC
(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
Comment 8 Björn Bidar (Thaodan) 2025-11-19 19:14:19 UTC
(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.
Comment 9 Björn Bidar (Thaodan) 2025-11-19 23:48:02 UTC
(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.
Comment 10 Björn Bidar (Thaodan) 2025-11-19 23:55:24 UTC
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
Comment 11 Harald Sitter 2025-11-20 06:46:09 UTC

*** This bug has been marked as a duplicate of bug 511256 ***
Comment 12 Björn Bidar (Thaodan) 2025-11-20 21:19:22 UTC
(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().
Comment 13 TraceyC 2025-11-24 23:26:34 UTC
*** Bug 512524 has been marked as a duplicate of this bug. ***
Comment 14 Harald Sitter 2025-11-28 16:10:58 UTC
*** Bug 512726 has been marked as a duplicate of this bug. ***
Comment 15 Paul Du 2025-12-02 16:58:08 UTC
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.
Comment 16 Silico Biomancer 2025-12-08 21:38:17 UTC
Same sympoms for me using bspwm wiht plasma instaed of i3, suggesting this affects all users not using kwon, not just i3 users.
Comment 17 Bug Janitor Service 2025-12-08 21:45:48 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6089
Comment 18 Bug Janitor Service 2025-12-08 21:48:22 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6090
Comment 19 Nate Graham 2025-12-09 15:54:54 UTC
This is the #6 crash in plasma right now; raising priority.
Comment 20 Nate Graham 2025-12-18 20:54:59 UTC
*** Bug 513455 has been marked as a duplicate of this bug. ***