Bug 457690 - Plasma panel randomly crashing
Summary: Plasma panel randomly crashing
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Task Manager and Icons-Only Task Manager (show other bugs)
Version: 5.25.4
Platform: Arch Linux Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
: 458406 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-08-09 19:23 UTC by Jan Bidler
Modified: 2022-09-24 13:42 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.25.5
Sentry Crash Report:


Attachments
Plasma Panel Journalctl log (525.33 KB, text/x-log)
2022-08-09 19:23 UTC, Jan Bidler
Details
Plasma Shell Crash screenshot (29.88 KB, image/png)
2022-08-10 14:41 UTC, Jan Bidler
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Bidler 2022-08-09 19:23:05 UTC
Created attachment 151202 [details]
Plasma Panel Journalctl log

SUMMARY
My plasma panel is randomly crashing. There is no consistency as to when it crashes (at least not that I'm able to tell), it just happens at random times.


STEPS TO REPRODUCE
1. Wait a (long) while.

OBSERVED RESULT
The plasma panel crashes, and after a while reboots.
Generally, KCrash handler does not appear, however there was one exception where it *did* appear. Unfortunately, it closed itself before I was able to copy the full stacktrace, but I know it mentioned something pulse related. That crash did not appear in Dr. Konqi afterwards, so I am not able to check what it contained.
I have attached a journalctl log from 1minute before/after a crash.

It is worth noting that the Blush and Calligraph themes it complains about, are just MSStyle themes. They are also not installed. I can attach those too if wished for (I don't remember where I downloaded them sadly).

I am using pipewire as my default audio server. Not sure if it helps, but here are installed pipewire/pulseaudio packages:
```
lib32-pipewire
pipewire
pipewire-pulse
pipewire-alsa

lib32-libpulse
libpulse
```

EXPECTED RESULT
Plasma Panel should not crash.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.25.4
KDE Frameworks Version: 5.96.0
Qt Version: 5.15.5
Kernel Version: 5.18.14-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 1600 Six-Core Processor
Memory: 15.6 GiB of RAM
Graphics Processor: AMD Radeon RX 570 Series
Manufacturer: Gigabyte Technology Co., Ltd.
Product Name: B450M DS3H

ADDITIONAL INFORMATION
Was told to report it here in plasma-pa, if it's the wrong place, would appreciate if it'd get moved to the correct one.
As one can probably imagine, having a panel that just randomly crashes is a bit of an unpleasant experience, so if I should provide any further info, please let me know.
Comment 1 Nicolas Fella 2022-08-09 20:13:08 UTC
Crash reports without a backtrace aren't really actionable.

Please see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl for how to get a backtrace using coredumpctl
Comment 2 Jan Bidler 2022-08-09 20:24:19 UTC
From all my crashing in the last month, only one actually shows in coredumpctl (one that happened a few minutes before posting this). 
Unfortunately, it looks like this backtrace is mostly meaningless; seems like there was some error with loading the core dump into gdb, as I'm getting a ton of `warning: Can't open file <file> (deleted) during file-backend mapping processing`
``` 
Core was generated by `/usr/bin/plasmashell --no-respawn'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f4f6dc8e36c in ?? ()
[Current thread is 1 (LWP 2548)]
(gdb) bt full
#0  0x00007f4f6dc8e36c in ?? ()
No symbol table info available.
#1  0x00007f4f6dc3e8e0 in ?? ()
No symbol table info available.
#2  0x00007f4f6dc3eadd in ?? ()
No symbol table info available.
#3  0x00007f4ed0208550 in ?? ()
No symbol table info available.
#4  0x00007f4f706ca1eb in ?? ()
No symbol table info available.
#5  0x00000000000004e8 in ?? ()
No symbol table info available.
#6  0x0000000000001000 in ?? ()
No symbol table info available.
#7  0x0000000000000000 in ?? ()
No symbol table info available.
```
Comment 3 Jan Bidler 2022-08-10 14:41:43 UTC
Created attachment 151225 [details]
Plasma Shell Crash screenshot

Ran plasma shell in gdb today, and was able to catch a proper backtrace this time.
I have also attached a screenshot of the moment it crashed.
```
Thread 1 "plasmashell" received signal SIGSEGV, Segmentation fault.
0x00007ffff7651ffd in QQuickWindow::openglContext() const () from /usr/lib/libQt5Quick.so.5
(gdb) bt full
#0  0x00007ffff7651ffd in QQuickWindow::openglContext() const () at /usr/lib/libQt5Quick.so.5
#1  0x00007fff94d63600 in  () at /usr/lib/qt/qml/org/kde/taskmanager/libtaskmanagerplugin.so
#2  0x00007ffff5abd341 in  () at /usr/lib/libQt5Core.so.5
#3  0x00007fff94d6681b in  () at /usr/lib/qt/qml/org/kde/taskmanager/libtaskmanagerplugin.so
#4  0x00007fff94d5e21a in  () at /usr/lib/qt/qml/org/kde/taskmanager/libtaskmanagerplugin.so
#5  0x00007fff9409d0a8 in  () at /usr/lib/libpipewire-0.3.so.0
#6  0x00007fff8417839a in  () at /usr/lib/spa-0.2/support/libspa-support.so
#7  0x00007fff84179d99 in  () at /usr/lib/spa-0.2/support/libspa-support.so
#8  0x00007fff940a5182 in  () at /usr/lib/libpipewire-0.3.so.0
#9  0x00007fff94082911 in  () at /usr/lib/libpipewire-0.3.so.0
#10 0x00007fff9408c412 in pw_impl_node_set_state () at /usr/lib/libpipewire-0.3.so.0
#11 0x00007fff8700602c in  () at /usr/lib/pipewire-0.3/libpipewire-module-client-node.so
#12 0x00007fff94095410 in pw_proxy_destroy () at /usr/lib/libpipewire-0.3.so.0
#13 0x00007fff940abc71 in pw_stream_disconnect () at /usr/lib/libpipewire-0.3.so.0
#14 0x00007fff940a8b59 in pw_stream_destroy () at /usr/lib/libpipewire-0.3.so.0
#15 0x00007fff94d58a1d in  () at /usr/lib/qt/qml/org/kde/taskmanager/libtaskmanagerplugin.so
#16 0x00007fff94d58da7 in  () at /usr/lib/qt/qml/org/kde/taskmanager/libtaskmanagerplugin.so
#17 0x00007ffff703c0c2 in  () at /usr/lib/libQt5Qml.so.5
#18 0x00007ffff70436f0 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#19 0x00007ffff7099890 in QQmlBinding::slowWrite(QQmlPropertyData const&, QQmlPropertyData const&, QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#20 0x00007ffff7091309 in  () at /usr/lib/libQt5Qml.so.5
#21 0x00007ffff709908e in  () at /usr/lib/libQt5Qml.so.5
#22 0x00007ffff7098b73 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) ()
    at /usr/lib/libQt5Qml.so.5
#23 0x00007ffff70768cf in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) ()
    at /usr/lib/libQt5Qml.so.5
#24 0x00007ffff5abce6d in  () at /usr/lib/libQt5Core.so.5
#25 0x00007fff94d5eb78 in  () at /usr/lib/qt/qml/org/kde/taskmanager/libtaskmanagerplugin.so
#26 0x00007ffff703c0c2 in  () at /usr/lib/libQt5Qml.so.5
#27 0x00007ffff7091b65 in  () at /usr/lib/libQt5Qml.so.5
#28 0x00007ffff709908e in  () at /usr/lib/libQt5Qml.so.5
#29 0x00007ffff7098b73 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#30 0x00007ffff70768cf in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib/libQt5Qml.so.5
#31 0x00007ffff5abce6d in  () at /usr/lib/libQt5Core.so.5
#32 0x00007ffff76d6f09 in QQuickWindowAttached::windowChange(QQuickWindow*) () at /usr/lib/libQt5Quick.so.5
#33 0x00007ffff5abd341 in  () at /usr/lib/libQt5Core.so.5
#34 0x00007ffff7634b27 in QQuickItem::windowChanged(QQuickWindow*) () at /usr/lib/libQt5Quick.so.5
#35 0x00007ffff763182b in QQuickItemPrivate::derefWindow() () at /usr/lib/libQt5Quick.so.5
#36 0x00007ffff7632c1e in QQuickItem::setParentItem(QQuickItem*) () at /usr/lib/libQt5Quick.so.5
#37 0x00007ffff7f64f92 in PlasmaQuick::Dialog::setMainItem(QQuickItem*) () at /usr/lib/libKF5PlasmaQuick.so.5
#38 0x00007fffec06876a in  () at /usr/lib/qt/qml/org/kde/plasma/core/libcorebindingsplugin.so
#39 0x00007ffff763c1e5 in QQuickItem::event(QEvent*) () at /usr/lib/libQt5Quick.so.5
#40 0x00007ffff6778b3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#41 0x00007ffff5a8cad8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#42 0x00007ffff764a02e in QQuickWindowPrivate::sendHoverEvent(QEvent::Type, QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool) () at /usr/lib/libQt5Quick.so.5
#43 0x00007ffff764e862 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#44 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#45 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#46 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#47 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#48 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#49 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#50 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#51 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#52 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#53 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#54 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#55 0x00007ffff764e0b0 in QQuickWindowPrivate::deliverHoverEvent(QQuickItem*, QPointF const&, QPointF const&, QFlags<Qt::KeyboardModifier>, unsigned long, bool&) () at /usr/lib/libQt5Quick.so.5
#56 0x00007ffff7650ce7 in QQuickWindowPrivate::handleMouseEvent(QMouseEvent*) () at /usr/lib/libQt5Quick.so.5
#57 0x00007ffff5f55b45 in QWindow::event(QEvent*) () at /usr/lib/libQt5Gui.so.5
#58 0x00007ffff6778b3c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#59 0x00007ffff5a8cad8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#60 0x00007ffff5f3f02c in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#61 0x00007ffff5f28935 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#62 0x00007ffff3afcfe5 in  () at /usr/lib/libQt5WaylandClient.so.5
#63 0x00007ffff41dec6b in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#64 0x00007ffff4235001 in  () at /usr/lib/libglib-2.0.so.0
#65 0x00007ffff41dc392 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#66 0x00007ffff5ad732c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#67 0x00007ffff5a8527c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#68 0x00007ffff5a8fda9 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#69 0x0000555555577123 in  ()
#70 0x00007ffff523f2d0 in  () at /usr/lib/libc.so.6
#71 0x00007ffff523f38a in __libc_start_main () at /usr/lib/libc.so.6
#72 0x00005555555774d5 in  ()
(gdb) 
```
Comment 4 Nicolas Fella 2022-08-10 14:46:52 UTC
Seems to be the same crash as https://bugs.kde.org/show_bug.cgi?id=456094
Comment 5 Jan Bidler 2022-08-10 15:02:27 UTC
Ah, so a pipewire issue. Has there been an issue already created on there from the original bug report here, or should I go create one?
Comment 6 Nicolas Fella 2022-08-10 15:10:02 UTC
No, most likely it's a Plasma bug, not a PipeWire bug
Comment 7 Bug Janitor Service 2022-08-10 15:18:58 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/2010
Comment 8 Nicolas Fella 2022-08-10 15:44:54 UTC
Git commit 0acb09809cd700b1571263b94f6f506d2d08a32b by Nicolas Fella.
Committed on 10/08/2022 at 15:17.
Pushed by nicolasfella into branch 'Plasma/5.25'.

[libtaskmanager] Fix null check for window

window() may be null. We check for that, but 5a3ef9e8253029569deb645af625e2bdd53e95e9 introduced code that uses window() before the check.

Move the check before the relevant code to fix that
Related: bug 456094

M  +7    -1    libtaskmanager/declarative/pipewiresourceitem.cpp

https://invent.kde.org/plasma/plasma-workspace/commit/0acb09809cd700b1571263b94f6f506d2d08a32b
Comment 9 Nicolas Fella 2022-09-24 13:40:53 UTC
*** Bug 458406 has been marked as a duplicate of this bug. ***