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: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Containment (other bugs)
Version First Reported In: 6.5.1
Platform: Arch Linux Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
: 511452 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-10-31 13:00 UTC by SepiaRovilher
Modified: 2025-11-08 14:15 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
The backtrace of the command (47.60 KB, text/plain)
2025-10-31 13:00 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