SUMMARY QT Particles seem to overload and block KDE Plasma. ADDITIONAL INFORMATION I was looking for something to provide me a winter ambient (not necessarily a Christmas feeling). I've found this: https://github.com/IvanSafonov/plasma-wallpaper-snow. It is such a simple add-on. A few lines of code. Still, it seems to crash KSE Plasma somehow. The simplicity of the add-on makes me wonder if there is something wrong with QT/KDE/Plasma, although I have no clear clue. Also, I have run this add-on every year in the winter. Only now, the fourth year of its existence, I have faced such behaviour. Maybe there is something changed in the frameworks, but I have no knowledge of this. If there is something to break it, should have some message for old and deprecated functions. STEPS TO REPRODUCE 1. Install the Plasma Wallpaper Snow add-on from https://github.com/IvanSafonov/plasma-wallpaper-snow. 2. Set it up and let it go 3. In a day, KDE Plasma becames unresponsive, no UI interaction, looks frozen. OBSERVED RESULT KDE Plasma freezes. EXPECTED RESULT KDE Plasma should run the add-on for a long time, ideally for as long the device is on. SOFTWARE/OS VERSIONS Operating System: Sabayon/Gentoo Linux KDE Plasma Version: 5.17.4 KDE Frameworks Version: 5.65.0 Qt Version: 5.12.5 Kernel Version: 5.3.0-sabayon OS Type: 64-bit Processors: 8 × Intel® Core™ i7 CPU 920 @ 2.67GHz Memory: 23,5 GiB of RAM
Anything that happens only with a 3rd party addon is never major. Changing status. >Still, it seems to crash KSE Plasma somehow. Crashes need a backtrace, or we can't do a lot. Please see the sad icon face in the system tray after plasmashell restarts or run plasmashell specifically in gdb. See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
I don't know, the issue is that KDE simply freezes. I can't get to tray or anything else. I have even tried the power down button on my PC. The system does not respond anymore (it should initiate a shutdown). No console available or anything else, the keyboard does not trigger anything. It's completely unresponsive. This is what I've meant by "freezing". I have a laptop that has the same behaviour. The author of the add-on did not respond. The code is so small. Does it "tells" anything?
I have looked for some crash data, but I can't find any.
Then I'm afraid i can't do anything.
Well, you could, but I presume you don't agree to try to reproduce it.
Hello, seems that updated Plasma version or the shorter time have lead it in a state when plasma is frozen, but tasks can still be changed and I have expanded a Yakuake, so I can issue commands. What could I do to diagnose it, as I might have a short window of time to do that? I can say that freeze occurs in less than 24 hours every time.
Created attachment 125387 [details] Plasma frozen It displays 05:31:11, the time when it froze, despite now is passed 08:00.
I've noticed another strange behaviour: in Dolphin, if I delete a file, the confirmation dialog appears and that Dolphin instance freezes after the user confirmation.
>What could I do to diagnose it, as I might have a short window of time to do that? sudo gdb --pid `pidof plasmashell` then when it connects type "thread apply all bt" and copy and paste all the output
sudo gdb --pid `pidof plasmashell` GNU gdb (Gentoo 8.3.1 vanilla) 8.3.1 Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://bugs.gentoo.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". Attaching to process 15045 [New LWP 15072] [New LWP 15081] [New LWP 15093] [New LWP 15112] [New LWP 15186] [New LWP 15395] [New LWP 15524] [New LWP 15527] [New LWP 15593] [New LWP 17582] [New LWP 18903] warning: File "/lib64/libthread_db-1.0.so" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load". To enable execution of this file add add-auto-load-safe-path /lib64/libthread_db-1.0.so line to your configuration file "/root/.gdbinit". To completely disable this security protection add set auto-load safe-path / line to your configuration file "/root/.gdbinit". For more information about this security protection see the "Auto-loading safe path" section in the GDB manual. E.g., run from the shell: info "(gdb)Auto-loading safe path" warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available. warning: File "/lib64/libthread_db-1.0.so" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load". warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available. 0x00007fc2b887d109 in QQuickParticleDataHeap::swap(int, int) () from /usr/lib64/libQt5QuickParticles.so.5 warning: File "/home/admius/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load". (gdb) thread apply all bt Thread 12 (LWP 18903): #0 0x00007fc2e432c13c in pthread_cond_wait () at /lib64/libpthread.so.0 #1 0x00007fc2e5067c73 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5 #2 0x00007fc2e5067cf9 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5 #3 0x00007fc2e6b9c949 in () at /usr/lib64/libQt5Quick.so.5 #4 0x00007fc2e6b9cbaa in () at /usr/lib64/libQt5Quick.so.5 #5 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #7 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 11 (LWP 17582): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e6b162e6 in () at /usr/lib64/libQt5Quick.so.5 #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 10 (LWP 15593): #0 0x00007fc2e432c13c in pthread_cond_wait () at /lib64/libpthread.so.0 #1 0x00007fc2e5067c73 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5 #2 0x00007fc2e5067cf9 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5 #3 0x00007fc2e6b9c949 in () at /usr/lib64/libQt5Quick.so.5 #4 0x00007fc2e6b9cbaa in () at /usr/lib64/libQt5Quick.so.5 #5 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #7 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 9 (LWP 15527): #0 0x00007fc2e432c13c in pthread_cond_wait () at /lib64/libpthread.so.0 #1 0x00007fc2e5067c73 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5 #2 0x00007fc2e5067cf9 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5 --Type <RET> for more, q to quit, c to continue without paging-- #3 0x00007fc2e6b9c949 in () at /usr/lib64/libQt5Quick.so.5 #4 0x00007fc2e6b9cbaa in () at /usr/lib64/libQt5Quick.so.5 #5 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #7 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 8 (LWP 15524): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2b11be6c7 in KCupsConnection::run() () at /usr/lib64/libkcupslib.so #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 7 (LWP 15395): #0 0x00007fc2e432c13c in pthread_cond_wait () at /lib64/libpthread.so.0 #1 0x00007fc2e5067c73 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5 #2 0x00007fc2e5067cf9 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5 #3 0x00007fc2e6b9c949 in () at /usr/lib64/libQt5Quick.so.5 #4 0x00007fc2e6b9cbaa in () at /usr/lib64/libQt5Quick.so.5 #5 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #7 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 6 (LWP 15186): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2ba065c45 in () at /usr/lib64/qt5/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 --Type <RET> for more, q to quit, c to continue without paging-- #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 5 (LWP 15112): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #7 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #8 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 4 (LWP 15093): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e68499d5 in () at /usr/lib64/libQt5Qml.so.5 #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 3 (LWP 15081): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e5a32565 in () at /usr/lib64/libQt5DBus.so.5 #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 --Type <RET> for more, q to quit, c to continue without paging-- Thread 2 (LWP 15072): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e718e9e0 in () at /usr/lib64/libxcb.so.1 #2 0x00007fc2e7190cc9 in xcb_wait_for_event () at /usr/lib64/libxcb.so.1 #3 0x00007fc2d272e480 in () at /usr/lib64/libQt5XcbQpa.so.5 #4 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #6 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 1 (LWP 15045): #0 0x00007fc2b887d109 in QQuickParticleDataHeap::swap(int, int) () at /usr/lib64/libQt5QuickParticles.so.5 #1 0x00007fc2b887d6fa in QQuickParticleDataHeap::bubbleDown(int) () at /usr/lib64/libQt5QuickParticles.so.5 #2 0x00007fc2b887db83 in QQuickParticleDataHeap::pop() () at /usr/lib64/libQt5QuickParticles.so.5 #3 0x00007fc2b887e536 in QQuickParticleGroupData::recycle() () at /usr/lib64/libQt5QuickParticles.so.5 #4 0x00007fc2b8880fc8 in () at /usr/lib64/libQt5QuickParticles.so.5 #5 0x00007fc2e504b5a1 in QAbstractAnimation::setCurrentTime(int) () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e504b6d7 in () at /usr/lib64/libQt5Core.so.5 #7 0x00007fc2e5049c3b in QUnifiedTimer::updateAnimationTimers(long long) () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e504a51c in QAnimationDriver::advanceAnimation(long long) () at /usr/lib64/libQt5Core.so.5 #9 0x00007fc2e6b72bb9 in () at /usr/lib64/libQt5Quick.so.5 #10 0x00007fc2e6b9769f in () at /usr/lib64/libQt5Quick.so.5 #11 0x00007fc2e5c9f5b1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #12 0x00007fc2e5ca6b90 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #13 0x00007fc2e51ef3d2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5 #14 0x00007fc2e523fc94 in QTimerInfoList::activateTimers() () at /usr/lib64/libQt5Core.so.5 #15 0x00007fc2e52404dc in () at /usr/lib64/libQt5Core.so.5 #16 0x00007fc2e2d2d5ae in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 #17 0x00007fc2e2d2d848 in () at /usr/lib64/libglib-2.0.so.0 #18 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #19 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #20 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #21 0x00007fc2e51f6132 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5 #22 0x0000560bda5a2223 in () #23 0x00007fc2e4bece4b in __libc_start_main () at /lib64/libc.so.6 #24 0x0000560bda5a264a in _start ()
I have no debug symbols, AFAIK, as it is a Sabayon regular release installation. It took less than 12 hours to freeze.
gdb --pid `pidof plasmashell` GNU gdb (Gentoo 8.3.1 vanilla) 8.3.1 Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://bugs.gentoo.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". Attaching to process 15045 [New LWP 15072] [New LWP 15081] [New LWP 15093] [New LWP 15112] [New LWP 15186] [New LWP 15395] [New LWP 15524] [New LWP 15527] [New LWP 15593] [New LWP 17582] [New LWP 18903] warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available. warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available. 0x00007fc2b887d20d in QQuickParticleDataHeap::swap(int, int) () from /usr/lib64/libQt5QuickParticles.so.5 (gdb) thread apply all bt Thread 12 (LWP 18903): #0 0x00007fc2e432c13c in pthread_cond_wait () at /lib64/libpthread.so.0 #1 0x00007fc2e5067c73 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5 #2 0x00007fc2e5067cf9 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5 #3 0x00007fc2e6b9c949 in () at /usr/lib64/libQt5Quick.so.5 #4 0x00007fc2e6b9cbaa in () at /usr/lib64/libQt5Quick.so.5 #5 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #7 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 11 (LWP 17582): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e6b162e6 in () at /usr/lib64/libQt5Quick.so.5 #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 10 (LWP 15593): #0 0x00007fc2e432c13c in pthread_cond_wait () at /lib64/libpthread.so.0 #1 0x00007fc2e5067c73 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5 #2 0x00007fc2e5067cf9 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5 #3 0x00007fc2e6b9c949 in () at /usr/lib64/libQt5Quick.so.5 #4 0x00007fc2e6b9cbaa in () at /usr/lib64/libQt5Quick.so.5 #5 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #7 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 9 (LWP 15527): #0 0x00007fc2e432c13c in pthread_cond_wait () at /lib64/libpthread.so.0 #1 0x00007fc2e5067c73 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5 #2 0x00007fc2e5067cf9 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5 --Type <RET> for more, q to quit, c to continue without paging-- #3 0x00007fc2e6b9c949 in () at /usr/lib64/libQt5Quick.so.5 #4 0x00007fc2e6b9cbaa in () at /usr/lib64/libQt5Quick.so.5 #5 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #7 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 8 (LWP 15524): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2b11be6c7 in KCupsConnection::run() () at /usr/lib64/libkcupslib.so #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 7 (LWP 15395): #0 0x00007fc2e432c13c in pthread_cond_wait () at /lib64/libpthread.so.0 #1 0x00007fc2e5067c73 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib64/libQt5Core.so.5 #2 0x00007fc2e5067cf9 in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib64/libQt5Core.so.5 #3 0x00007fc2e6b9c949 in () at /usr/lib64/libQt5Quick.so.5 #4 0x00007fc2e6b9cbaa in () at /usr/lib64/libQt5Quick.so.5 #5 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #7 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 6 (LWP 15186): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2ba065c45 in () at /usr/lib64/qt5/qml/QtQuick/XmlListModel/libqmlxmllistmodelplugin.so #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 --Type <RET> for more, q to quit, c to continue without paging-- #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 5 (LWP 15112): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #7 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #8 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 4 (LWP 15093): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e68499d5 in () at /usr/lib64/libQt5Qml.so.5 #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 3 (LWP 15081): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e2d2d7b6 in () at /usr/lib64/libglib-2.0.so.0 #2 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #3 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #4 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e5061296 in QThread::exec() () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e5a32565 in () at /usr/lib64/libQt5DBus.so.5 #7 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #9 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 --Type <RET> for more, q to quit, c to continue without paging-- Thread 2 (LWP 15072): #0 0x00007fc2e4cc3f73 in poll () at /lib64/libc.so.6 #1 0x00007fc2e718e9e0 in () at /usr/lib64/libxcb.so.1 #2 0x00007fc2e7190cc9 in xcb_wait_for_event () at /usr/lib64/libxcb.so.1 #3 0x00007fc2d272e480 in () at /usr/lib64/libQt5XcbQpa.so.5 #4 0x00007fc2e50624b2 in () at /usr/lib64/libQt5Core.so.5 #5 0x00007fc2e4325458 in () at /lib64/libpthread.so.0 #6 0x00007fc2e4cd000f in clone () at /lib64/libc.so.6 Thread 1 (LWP 15045): #0 0x00007fc2b887d20d in QQuickParticleDataHeap::swap(int, int) () at /usr/lib64/libQt5QuickParticles.so.5 #1 0x00007fc2b887d5c0 in QQuickParticleDataHeap::bubbleUp(int) () at /usr/lib64/libQt5QuickParticles.so.5 #2 0x00007fc2b887def2 in QQuickParticleDataHeap::insertTimed(QQuickParticleData*, int) () at /usr/lib64/libQt5QuickParticles.so.5 #3 0x00007fc2b887e629 in QQuickParticleGroupData::recycle() () at /usr/lib64/libQt5QuickParticles.so.5 #4 0x00007fc2b8880fc8 in () at /usr/lib64/libQt5QuickParticles.so.5 #5 0x00007fc2e504b5a1 in QAbstractAnimation::setCurrentTime(int) () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e504b6d7 in () at /usr/lib64/libQt5Core.so.5 #7 0x00007fc2e5049c3b in QUnifiedTimer::updateAnimationTimers(long long) () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e504a51c in QAnimationDriver::advanceAnimation(long long) () at /usr/lib64/libQt5Core.so.5 #9 0x00007fc2e6b72bb9 in () at /usr/lib64/libQt5Quick.so.5 #10 0x00007fc2e6b9769f in () at /usr/lib64/libQt5Quick.so.5 #11 0x00007fc2e5c9f5b1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #12 0x00007fc2e5ca6b90 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #13 0x00007fc2e51ef3d2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5 #14 0x00007fc2e523fc94 in QTimerInfoList::activateTimers() () at /usr/lib64/libQt5Core.so.5 #15 0x00007fc2e52404dc in () at /usr/lib64/libQt5Core.so.5 #16 0x00007fc2e2d2d5ae in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 #17 0x00007fc2e2d2d848 in () at /usr/lib64/libglib-2.0.so.0 #18 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #19 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #20 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #21 0x00007fc2e51f6132 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5 #22 0x0000560bda5a2223 in () #23 0x00007fc2e4bece4b in __libc_start_main () at /lib64/libc.so.6 #24 0x0000560bda5a264a in _start ()
Hi, ignore the first debug output, I've reconfigured gdb.
The relevant-seeming thread: Thread 1 (LWP 15045): #0 0x00007fc2b887d20d in QQuickParticleDataHeap::swap(int, int) () at /usr/lib64/libQt5QuickParticles.so.5 #1 0x00007fc2b887d5c0 in QQuickParticleDataHeap::bubbleUp(int) () at /usr/lib64/libQt5QuickParticles.so.5 #2 0x00007fc2b887def2 in QQuickParticleDataHeap::insertTimed(QQuickParticleData*, int) () at /usr/lib64/libQt5QuickParticles.so.5 #3 0x00007fc2b887e629 in QQuickParticleGroupData::recycle() () at /usr/lib64/libQt5QuickParticles.so.5 #4 0x00007fc2b8880fc8 in () at /usr/lib64/libQt5QuickParticles.so.5 #5 0x00007fc2e504b5a1 in QAbstractAnimation::setCurrentTime(int) () at /usr/lib64/libQt5Core.so.5 #6 0x00007fc2e504b6d7 in () at /usr/lib64/libQt5Core.so.5 #7 0x00007fc2e5049c3b in QUnifiedTimer::updateAnimationTimers(long long) () at /usr/lib64/libQt5Core.so.5 #8 0x00007fc2e504a51c in QAnimationDriver::advanceAnimation(long long) () at /usr/lib64/libQt5Core.so.5 #9 0x00007fc2e6b72bb9 in () at /usr/lib64/libQt5Quick.so.5 #10 0x00007fc2e6b9769f in () at /usr/lib64/libQt5Quick.so.5 #11 0x00007fc2e5c9f5b1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #12 0x00007fc2e5ca6b90 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #13 0x00007fc2e51ef3d2 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5 #14 0x00007fc2e523fc94 in QTimerInfoList::activateTimers() () at /usr/lib64/libQt5Core.so.5 #15 0x00007fc2e52404dc in () at /usr/lib64/libQt5Core.so.5 #16 0x00007fc2e2d2d5ae in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 #17 0x00007fc2e2d2d848 in () at /usr/lib64/libglib-2.0.so.0 #18 0x00007fc2e2d2d8dc in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #19 0x00007fc2e5240913 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #20 0x00007fc2e51ee2eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #21 0x00007fc2e51f6132 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5 #22 0x0000560bda5a2223 in () #23 0x00007fc2e4bece4b in __libc_start_main () at /lib64/libc.so.6 #24 0x0000560bda5a264a in _start ()
So yeah, it shows that, indeed, there's a slowdown when using particle effects on the desktop. I don't find that terribly surprising, especially with the terrible performance of integrated Intel GPUs circa 2020. Any improvement here would have to come from Qt or Intel. If you don't want your desktop to be slow, don't use an animated wallpaper with particle effects. :)