| Summary: | PlasmaShell crashes in Plasma::Containment::screen() with i3 on top of KDE | ||
|---|---|---|---|
| Product: | [Plasma] plasmashell | Reporter: | SepiaRovilher <sepiarovilhar> |
| Component: | Containment | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | ASSIGNED --- | ||
| Severity: | crash | CC: | bjorn.bidar, du.paul136, jacobephraim03, kde, mitschael, nate, nicolas.fella, notmart, sb.kde-bug-pub, sitter |
| Priority: | HI | ||
| Version First Reported In: | 6.5.1 | ||
| Target Milestone: | 1.0 | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | https://crash-reports.kde.org/organizations/kde/issues/113276/ | ||
| Attachments: |
The backtrace of the command
The backstrace with kscreen installed The backtrace without kscreen |
||
|
Description
SepiaRovilher
2025-10-31 13:00:33 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
*** 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. *** |