Bug 487535 - plasmashell freezes/hangs sometimes. killall -9 and run plasmashell from krunner fixes it
Summary: plasmashell freezes/hangs sometimes. killall -9 and run plasmashell from krun...
Status: CLOSED NOT A BUG
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (other bugs)
Version First Reported In: 6.0.5
Platform: Arch Linux Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-25 15:02 UTC by linux.admin
Modified: 2024-06-26 15:56 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description linux.admin 2024-05-25 15:02:32 UTC
plasmashell freezes/hangs sometimes. killall -9 plasmashell and run plasmashell from krunner fixes it
got such freezes about 5 times.
Comment 1 linux.admin 2024-05-26 07:31:31 UTC
мая 26 10:28:33 work plasmashell[3560]: terminate called after throwing an instance of 'std::bad_alloc'
мая 26 10:28:33 work plasmashell[3560]:   what():  std::bad_alloc
мая 26 10:28:33 work plasmashell[3560]: KCrash: Application 'plasmashell' crashing... crashRecursionCounter = 2
Comment 2 linux.admin 2024-05-28 08:10:09 UTC
happens every day multiple times. No any logs about it.
Comment 3 David Edmundson 2024-05-28 08:16:42 UTC
>мая 26 10:28:33 work plasmashell[3560]: terminate called after throwing an instance of 'std::bad_alloc'

ok, we need a backtrace to continue 
https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_with_GDB

Can you also see if memory usage increases before a crash?
Comment 4 Bug Janitor Service 2024-06-12 03:46:49 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Nate Graham 2024-06-13 13:32:07 UTC
Also can you get a backtrace of what Plasma is doing when it's hung?

In a terminal window, run "gdb --pid `pidof plasmashell`"

And then at the prompt, type "bt"
Comment 6 Nate Graham 2024-06-13 13:42:32 UTC
May need to prefix the first command with sudo if it doesn't work
Comment 7 linux.admin 2024-06-13 15:52:18 UTC
(In reply to Nate Graham from comment #5)
> Also can you get a backtrace of what Plasma is doing when it's hung?
> 
> In a terminal window, run "gdb --pid `pidof plasmashell`"
> 
> And then at the prompt, type "bt"

thanks, will try next time and will report here
Comment 8 linux.admin 2024-06-26 10:48:26 UTC
Hi. I downloaded all debug symbols and here is backtrace of frozen plasmashell:

#0  0x0000777caeef04e9 in __futex_abstimed_wait_common64 (private=128, futex_word=0x777b8b400990, expected=2321895, op=265, abstime=0x0, cancel=true)
    at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x777b8b400990, expected=2321895, clockid=clockid@entry=0, abstime=abstime@entry=0x0,
    private=private@entry=128, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x0000777caeef056f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x777b8b400990, expected=<optimized out>, clockid=clockid@entry=0,
    abstime=abstime@entry=0x0, private=private@entry=128) at futex-internal.c:139
#3  0x0000777caeef5bf3 in __pthread_clockjoin_ex (threadid=131372500911808, thread_return=0x0, clockid=0, abstime=0x0, block=<optimized out>)
    at pthread_join_common.c:102
#4  0x0000777c83440d1f in spa_thread_utils_join (retval=0x0, o=<optimized out>, thread=<optimized out>) at ../pipewire/spa/include/spa/support/thread.h:73
#5  pw_data_loop_stop (loop=0x59604ec0ea20) at ../pipewire/src/pipewire/data-loop.c:231
#6  0x0000777c834412a0 in pw_context_destroy (context=0x5960556b34e0) at ../pipewire/src/pipewire/context.c:425
#7  0x0000777c83e7c56f in PipeWireCore::~PipeWireCore (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kpipewire/kpipewire-6.1.0/src/pipewirecore.cpp:75
#8  0x0000777c83e7c652 in PipeWireCore::~PipeWireCore (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kpipewire/kpipewire-6.1.0/src/pipewirecore.cpp:81

#9  QtSharedPointer::CustomDeleter<PipeWireCore, QtSharedPointer::NormalDeleter>::execute (this=<optimized out>) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:161
#10 QtSharedPointer::ExternalRefCountWithCustomDeleter<PipeWireCore, QtSharedPointer::NormalDeleter>::deleter (self=<optimized out>)
    at /usr/include/qt6/QtCore/qsharedpointer_impl.h:179
#11 0x0000777c5fe4135c in QtSharedPointer::ExternalRefCountData::destroy (this=0x5960565d7610) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:115
#12 QSharedPointer<PipeWireCore>::deref (dd=0x5960565d7610) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:476
#13 QSharedPointer<PipeWireCore>::deref (dd=0x5960565d7610) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:472
#14 QSharedPointer<PipeWireCore>::deref (this=<synthetic pointer>) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:471
#15 QSharedPointer<PipeWireCore>::~QSharedPointer (this=<optimized out>, this=<optimized out>) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:284
#16 QSharedPointer<PipeWireCore>::clear (this=0x59604fb17ac8) at /usr/include/qt6/QtCore/qsharedpointer_impl.h:397
#17 MediaMonitor::connectToCore (this=0x59604fb17a90) at /usr/src/debug/kpipewire/kpipewire-6.1.0/src/monitors/mediamonitor.cpp:161
#18 0x0000777caf47a6f7 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:469
#19 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4086
#20 0x0000777caf482885 in QTimer::timeout (this=0x59604fb17b28, _t1=...) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qtimer.cpp:224
#21 QTimer::timerEvent (e=<optimized out>, this=0x59604fb17b28) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:258
#22 QTimer::timerEvent (this=0x59604fb17b28, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimer.cpp:252
#23 0x0000777caf464fc9 in QObject::event (this=0x59604fb17b28, e=0x7ffd9d6ece10) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1427
#24 0x0000777cb12e551c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x59604fb17b28, e=0x7ffd9d6ece10)
    at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3287
#25 0x0000777caf41dd28 in QCoreApplication::notifyInternal2 (receiver=0x59604fb17b28, event=0x7ffd9d6ece10)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1142
#26 0x0000777caf59cc98 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7ffd9d6ece10)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1583
#27 QTimerInfoList::activateTimers (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qtimerinfo_unix.cpp:434
#28 0x0000777caf67d979 in timerSourceDispatch (source=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:150
#29 0x0000777cadd85a89 in g_main_dispatch (context=0x777ca4000f00) at ../glib/glib/gmain.c:3344
#30 0x0000777cadde79b7 in g_main_context_dispatch_unlocked (context=0x777ca4000f00) at ../glib/glib/gmain.c:4152
#31 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x777ca4000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../glib/glib/gmain.c:4217
#32 0x0000777cadd84f95 in g_main_context_iteration (context=0x777ca4000f00, may_block=1) at ../glib/glib/gmain.c:4282
#33 0x0000777caf67bcbd in QEventDispatcherGlib::processEvents (this=0x59604dd7b140, flags=...)
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:394
    at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#34 0x0000777caf42801e in QEventLoop::processEvents (this=0x7ffd9d6ed0f0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:100
#35 QEventLoop::exec (this=0x7ffd9d6ed0f0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:182
#36 0x0000777caf42234d in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:74
#37 0x0000777cb12e13ba in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2555
#38 0x000059604cfd4d66 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-6.1.0/shell/main.cpp:188
Comment 9 linux.admin 2024-06-26 10:51:54 UTC
I see something about pipewire in backtrace. I am using pulseaudio, instead of pipewire, because pipewire sucks and sound is distorted.
Comment 10 Nate Graham 2024-06-26 12:45:19 UTC
Well, that's going to be at least part of the problem. PipeWire is required for thumbnails and screen recording to work. If you're forced it to not be present, you've got a system in an unsupported state.
Comment 11 linux.admin 2024-06-26 15:53:09 UTC
are you sure, the root cause of hang is pipewire? I am not accessing thumbnails or use screenrecoring. It just hangs on idle.
Comment 12 Nate Graham 2024-06-26 15:56:38 UTC
The backtrace indicates it's doing something in PipeWire, and you've indicated that you have a custom unsupported PipeWire setup on the machine. Please consult distro resources or support channels to proceed. Thanks!