Bug 514810 - Kwin freezes when when closing the file picker after long running time
Summary: Kwin freezes when when closing the file picker after long running time
Status: RESOLVED DOWNSTREAM
Alias: None
Product: kwin
Classification: Plasma
Component: performance (other bugs)
Version First Reported In: 6.5.5
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-01-18 23:13 UTC by thesword
Modified: 2026-01-26 08:23 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description thesword 2026-01-18 23:13:16 UTC
SUMMARY
Kwin freezes when closing the file picker after a long period of usage. Here is the following logs from Kwin:

janv. 19 00:04:26 thesword-msi kwin_wayland[1191]: The main thread was hanging temporarily!
janv. 19 00:04:30 thesword-msi kwin_wayland[1191]: The main thread was hanging temporarily!

STEPS TO REPRODUCE
1. Launch a plasma session for several hours.
2. Open the file picker (with vscode for example).
3. Close the file picker. 

OBSERVED RESULT
Kwin freeze for 1 second.

EXPECTED RESULT
Kwin don't freeze.

SOFTWARE/OS VERSIONS
Archlinux 6.18.5-arch1-1
KDE Plasma Version: 6.5.5
KDE Frameworks Version: 6.22.0
Qt Version: 6.10.1
Comment 1 David Redondo 2026-01-19 10:38:09 UTC
Can you get a backtrace of kwin when it's frozen?  (note you need to do this from a different machine via ssh) otherwise you will lock yourself out. 

Run gdb attach -p $(pidof kwin_wayland) in a terminal window while it's hung
If it says "--Type  for more, q to quit, c to continue without paging--" at the bottom of the terminal window, press the "c" key.
When you see a prompt that says "(gdb)", type "bt" and press the enter key.
If it says "--Type  for more, q to quit, c to continue without paging--" at the bottom of the terminal window, press the "c" key.
Copy-and-paste the contents of the terminal window into a comment here.
Comment 2 David Redondo 2026-01-19 10:38:31 UTC Comment hidden (spam)
Comment 3 thesword 2026-01-24 23:33:47 UTC
Hello David,

I found freezes are caused by the Klassy theme, so I will report the issue here: https://github.com/paulmcauley/klassy/issues. This bug can be closed.

#0  0x00007f4a370cbf9c in std::_Rb_tree_insert_and_rebalance (__insert_left=<optimized out>, __x=0x55f4b4e7efd0, __p=<optimized out>, __header=...) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++98/tree.cc:271
#1  0x00007f4a38d831b7 in ??? () at /usr/lib/libKF6ConfigCore.so.6
#2  0x00007f4a38d93775 in ??? () at /usr/lib/libKF6ConfigCore.so.6
#3  0x00007f4a38d817b3 in ??? () at /usr/lib/libKF6ConfigCore.so.6
#4  0x00007f4a2c0c7200 in ??? () at /usr/lib/qt6/plugins/org.kde.kdecoration3/org.kde.klassy.so
#5  0x00007f4a375d734f in ??? () at /usr/lib/libQt6Core.so.6
#6  0x00007f4a3a5f0163 in KDecoration3::DecoratedWindow::paletteChanged(QPalette const&) () at /usr/lib/libkdecorations3.so.6
#7  0x00007f4a375d734f in ??? () at /usr/lib/libQt6Core.so.6
#8  0x00007f4a3a077f90 in KWin::Window::paletteChanged(QPalette const&) () at /usr/lib/libkwin.so.6
#9  0x00007f4a3a065239 in KWin::Window::handlePaletteChange() () at /usr/lib/libkwin.so.6
#10 0x00007f4a375d734f in ??? () at /usr/lib/libQt6Core.so.6
#11 0x00007f4a375d734f in ??? () at /usr/lib/libQt6Core.so.6
#12 0x00007f4a38daf2b4 in KConfigWatcher::configChanged(KConfigGroup const&, QList<QByteArray> const&) () at /usr/lib/libKF6ConfigCore.so.6
#13 0x00007f4a38db5499 in ??? () at /usr/lib/libKF6ConfigCore.so.6
#14 0x00007f4a38db5762 in KConfigWatcher::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib/libKF6ConfigCore.so.6
#15 0x00007f4a37b80b71 in ??? () at /usr/lib/libQt6DBus.so.6
#16 0x00007f4a375c4994 in QObject::event(QEvent*) () at /usr/lib/libQt6Core.so.6
#17 0x00007f4a387021c0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6
#18 0x00007f4a3756a958 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#19 0x00007f4a3756ad30 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt6Core.so.6
#20 0x00007f4a3772dd4d in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#21 0x00007f4a38334b73 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Gui.so.6
#22 0x00007f4a37575786 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#23 0x00007f4a3756f3f1 in QCoreApplication::exec() () at /usr/lib/libQt6Core.so.6
#24 0x000055f4a6a929e2 in ??? ()
#25 0x00007f4a36c27635 in ??? () at /usr/lib/libc.so.6
#26 0x00007f4a36c276e9 in __libc_start_main () at /usr/lib/libc.so.6
#27 0x000055f4a6a9a135 in ??? ()