Bug 499634 - Plasma often hangs
Summary: Plasma often hangs
Status: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-performance (show other bugs)
Version: 6.2.5
Platform: Neon Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-02-07 06:40 UTC by kdeuzver
Modified: 2025-04-11 01:17 UTC (History)
6 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kdeuzver 2025-02-07 06:40:24 UTC
SUMMARY

I often have Plasma freezes (some times for up to 1min) while running (especially mouse activity around the Icons-only Task Manager).
(Before upgrading my KDE Neon to 24.04 Plasma 6.2 these were not hangs, but crashes.)
Kwin windows alt-tabbing and shutdown dialog are not affected.

Here is some log: https://fars.ee/rkFd.txt

STEPS TO REPRODUCE
1.  use Icons-only Task Manager
2. 
3. 

OBSERVED RESULT

A lot of hangs

EXPECTED RESULT

No hangs

SOFTWARE/OS VERSIONS

Operating System: KDE neon 6.2
KDE Plasma Version: 6.2.5
KDE Frameworks Version: 6.10.0
Qt Version: 6.8.1
Kernel Version: 6.12.11-x64v3-xanmod1 (64-bit)
Graphics Platform: Wayland
Processors: 22 × Intel® Core™ Ultra 7 155H
Memory: 31.0 GiB of RAM
Graphics Processor: Mesa Intel® Arc

ADDITIONAL INFORMATION
Comment 1 Marco Martin 2025-02-07 09:18:15 UTC
one thing that might be done while the plasma process is hang is to attach the gdb process to it then doing a backtrace:

 ps -C plasmashell -o pid h

it will output the pid number

then gdb attach pidnumber

when is started up, hit ctrl+c

then type bt

it should output a full backtrace, it might be useful 


if gdb complains it has no permissions to attach to the process, it might be necessary to run this command beforehand:

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
Comment 2 David Redondo 2025-02-07 13:04:39 UTC
Waiting for info until actionable
Comment 3 Bug Janitor Service 2025-02-22 03:46:49 UTC
🐛🧹 ⚠️ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!
Comment 4 kdeuzver 2025-02-25 12:29:49 UTC
Ok,
i upgraded to 6.3.1
Now I caught it at least 3 times:
https://fars.ee/1e5H.log
Comment 5 Marco Martin 2025-02-27 13:11:41 UTC
pasting inline.
it catched it in the mid of a component creation. i wonder if there is some repeater that for some reason creates thousands and thousands of objects.

is ram usage of plasmashell unusually high when this freeze occurs?

#0  _int_malloc (av=av@entry=0x7f82c8e03ac0 <main_arena>, bytes=bytes@entry=32) at ./malloc/malloc.c:4336
        iters = <optimized out>
        nb = <optimized out>
        idx = <optimized out>
        bin = 0x7f82c8e03b60 <main_arena+160>
        victim = 0x7f82c8e03b50 <main_arena+144>
        size = <optimized out>
        victim_index = <optimized out>
        remainder = <optimized out>
        remainder_size = <optimized out>
        block = <optimized out>
        bit = 32
        map = 76
        fwd = <optimized out>
        bck = <optimized out>
        tcache_unsorted_count = <optimized out>
        tcache_nb = 48
        tc_idx = 1
        return_cached = <optimized out>
        __PRETTY_FUNCTION__ = "_int_malloc"
#1  0x00007f82c8cad6f4 in __GI___libc_malloc (bytes=32) at ./malloc/malloc.c:3336
        ar_ptr = 0x7f82c8e03ac0 <main_arena>
        victim = <optimized out>
        tbytes = <optimized out>
        tc_idx = <optimized out>
        __PRETTY_FUNCTION__ = "__libc_malloc"
#2  0x00007f82c97da6f1 in QArrayData::allocate(QArrayData**, long long, long long, long long, QArrayData::AllocationOption) ()
    at /lib/x86_64-linux-gnu/libQt6Core.so.6
#3  0x00007f82c1a379bd in ??? () at /lib/x86_64-linux-gnu/libQt6QuickTemplates2.so.6
#4  0x00007f82c19f47e5 in QQuickAbstractButton::setAction(QQuickAction*) () at /lib/x86_64-linux-gnu/libQt6QuickTemplates2.so.6
#5  0x00007f82c19f5aba in QQuickAbstractButton::qt_metacall(QMetaObject::Call, int, void**) () at /lib/x86_64-linux-gnu/libQt6QuickTemplates2.so.6
#6  0x00007f82c1a18e2e in QQuickItemDelegate::qt_metacall(QMetaObject::Call, int, void**) () at /lib/x86_64-linux-gnu/libQt6QuickTemplates2.so.6
#7  0x00007f82ca89ba0e in QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*, QV4::CompiledData::Binding const*) ()
--Type <RET> for more, q to quit, c to continue without paging--
    at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#8  0x00007f82ca89d8f6 in QQmlObjectCreator::setupBindings(QFlags<QQmlObjectCreator::BindingMode>) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#9  0x00007f82ca8a4f29 in QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData const*, QV4::CompiledData::Binding const*) ()
    at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#10 0x00007f82ca899386 in QQmlObjectCreator::createInstance(int, QObject*, bool) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#11 0x00007f82ca8968fd in QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*, int) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#12 0x00007f82ca899b51 in QQmlObjectCreator::createInstance(int, QObject*, bool) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#13 0x00007f82ca8968fd in QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*, int) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#14 0x00007f82ca899b51 in QQmlObjectCreator::createInstance(int, QObject*, bool) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#15 0x00007f82ca8968fd in QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*, int) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#16 0x00007f82ca952968 in QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#17 0x00007f82ca9531e7 in QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlRefPointer<QQmlContextData> const&) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#18 0x00007f82c81cfef0 in ??? () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#19 0x00007f82caf109d8 in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#20 0x00007f82caefc7ff in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#21 0x00007f82caf09854 in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#22 0x00007f82cafad3af in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#23 0x00007f82caf08e9a in QQuickItemView::modelUpdated(QQmlChangeSet const&, bool) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#24 0x00007f82caf16010 in ??? () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#25 0x00007f82c9876964 in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#26 0x00007f82c81a5a27 in QQmlInstanceModel::modelUpdated(QQmlChangeSet const&, bool) () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#27 0x00007f82c81ccf5d in ??? () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#28 0x00007f82c81d2adc in ??? () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#29 0x00007f82c81d3e30 in QQmlDelegateModel::handleModelReset() () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#30 0x00007f82c98763e9 in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#31 0x00007f82c9718857 in QAbstractItemModel::layoutChanged(QList<QPersistentModelIndex> const&, QAbstractItemModel::LayoutChangeHint) ()
    at /lib/x86_64-linux-gnu/libQt6Core.so.6
#32 0x00007f825906d91f in ??? () at /usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/plasma/private/kicker/libkickerplugin.so
#33 0x00007f825908d5ed in ??? () at /usr/lib/x86_64-linux-gnu/qt6/qml/org/kde/plasma/private/kicker/libkickerplugin.so
#34 0x00007f82c980385d in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#35 0x00007f82cba01158 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#36 0x00007f82c98aefa0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#37 0x00007f82c98af9fd in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#38 0x00007f82c9667a2f in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#39 0x00007f82c7f1a5b5 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007f82c7f79717 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007f82c7f19a53 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007f82c966e6ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#43 0x00007f82c98b14d3 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#44 0x00007f82c98b2ffd in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#45 0x00005b979563c453 in ??? ()
#46 0x00007f82c8c2a1ca in __libc_start_call_main (main=main@entry=0x5b979563b720, argc=argc@entry=2, argv=argv@entry=0x7ffd5b3c8bc8)
    at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140726134148040, 3876612357006281422, 2, 0, 100706605474648, 140199749177344, 3876612356966435534, 3833506226096687822}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x2, 0x7ffd5b3c8bc0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 2}}}
        not_first_call = <optimized out>
#47 0x00007f82c8c2a28b in __libc_start_main_impl
    (main=0x5b979563b720, argc=2, argv=0x7ffd5b3c8bc8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd5b3c8bb8)
    at ../csu/libc-start.c:360
#48 0x00005b979563c585 in ??? ()
(gdb) q
Comment 6 kdeuzver 2025-04-03 22:32:51 UTC
(In reply to Marco Martin from comment #5)
> pasting inline.
> it catched it in the mid of a component creation. i wonder if there is some
> repeater that for some reason creates thousands and thousands of objects.
> 
> is ram usage of plasmashell unusually high when this freeze occurs?

I haven't noticed any jumps in RAM consumption
Comment 7 kdeuzver 2025-04-07 05:21:37 UTC
(In reply to Marco Martin from comment #5)

> is ram usage of plasmashell unusually high when this freeze occurs?

Although today I caught a long plasmashell hang, and I have to say you are right, there is a large memory consumption by the plasmashell process - 2.8GB - during the hang.
And then after the hang it goes down to 1.8GB.
https://0x0.st/8_1p.jpg
Comment 8 kdeuzver 2025-04-07 19:46:42 UTC
The process usually consumes about 1GB of memory, while not hanging
https://0x0.st/8_Op.png
Comment 9 Ben 2025-04-09 21:44:25 UTC
I am noticing this too. where plasma panels will be unresponsive for 30-45 secs and launching apps and interacting with panels can be unresponsive. might be related to this issue
Comment 10 Ben 2025-04-09 22:00:14 UTC
this is the output I got when monitoring journamctl
https://pastebin.com/DUFjLu8S
Comment 11 kdeuzver 2025-04-11 01:17:52 UTC
I have upgraded to 6.3.4 but te hangs still occur.  The only thing that helps me is kill 9 the plasma:

```
kill -9 `ps -C plasmashell -o pid h`; plasmashell --replace >& /dev/null &
```