Bug 497180 - Crash in KWin::DrmGpu::presentationClock
Summary: Crash in KWin::DrmGpu::presentationClock
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 6.2.4
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords: drkonqi
: 498319 498776 499036 (view as bug list)
Depends on:
Blocks:
 
Reported: 2024-12-07 23:34 UTC by CodeBreaker
Modified: 2025-02-10 17:58 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.3.0
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/4603/events/05c40bbbf68440aeaafe20d64247b736/


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description CodeBreaker 2024-12-07 23:34:12 UTC
Application: kwin_wayland (6.2.4)

ApplicationNotResponding [ANR]: false
Qt Version: 6.8.0
Frameworks Version: 6.8.0
Operating System: Linux 6.11.10-300.fc41.x86_64 x86_64
Windowing System: Wayland
Distribution: "Fedora Linux 41 (KDE Plasma)"
DrKonqi: 6.2.4 [CoredumpBackend]

-- Information about the crash:
I activated standby mode recently. After I came back and turned my system on again I only saw a black screen for around 10 seconds. My monitor reported "No Signal" during the black screen. After that I saw my login screen again. After I logged in I saw the crash notification for KWin.

The crash can be reproduced sometimes.

-- Backtrace:
Application: KWin (kwin_wayland), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
Downloading separate debug info for /usr/bin/kwin_wayland...
Downloading 7.73 M separate debug info for /home/developer/.cache/debuginfod_client/f589fb0cd2741c0d9f100946402efceb2413358e/debuginfo...

warning: Can't open file /memfd:/.glXXXXXX (deleted) during file-backed mapping note processing

warning: Can't open file /dev/shm/.org.chromium.Chromium.rQjaNN (deleted) during file-backed mapping note processing

warning: Can't open file /dev/shm/.org.chromium.Chromium.bCYfR6 (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:wayland-shm (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:wayland-cursor (deleted) during file-backed mapping note processing

warning: Can't open file /home/developer/.cache/plasma_theme_default.kcache (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:xwayland-shared (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JITCode:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:unknown-usage:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:kwayland-shared (deleted) during file-backed mapping note processing

warning: Can't open file /var/lib/flatpak/exports/share/icons/hicolor/icon-theme.cache (deleted) during file-backed mapping note processing

warning: Can't open file /var/lib/flatpak/exports/share/mime/mime.cache (deleted) during file-backed mapping note processing
[New LWP 2595]
[New LWP 2681]
[New LWP 2651]
[New LWP 2675]
[New LWP 2661]
[New LWP 2678]
[New LWP 2680]
[New LWP 2679]
Downloading 4.69 M separate debug info for /lib64/libqaccessibilityclient-qt6.so.0...
Downloading 176.35 M separate debug info for /lib64/libkwin.so.6...
Downloading 2.92 M separate debug info for /lib64/libkdecorations2.so.6...
Downloading 341.67 K separate debug info for /home/developer/.cache/debuginfod_client/4c5344ed047e9f998f58ab8976bcd6d8d1878324/debuginfo...
Downloading 4.97 M separate debug info for /lib64/libKGlobalAccelD.so.0...
Downloading 613.44 K separate debug info for /home/developer/.cache/debuginfod_client/78b9100e2ee5d1a6a3f05d430e6dc03f0c443c32/debuginfo...
Downloading 3.42 M separate debug info for /lib64/libQt6Sensors.so.6...
Downloading 809.60 K separate debug info for /home/developer/.cache/debuginfod_client/da60c2d9f215a0914b99c30b9ef135e9f7c6e70d/debuginfo...
Downloading 533.37 K separate debug info for /lib64/libkdecorations2private.so.11...
Downloading 55.52 K separate debug info for /lib64/libxcb-cursor.so.0...
Downloading 271.28 K separate debug info for /lib64/libxcb-glx.so.0...
Downloading 51.79 K separate debug info for /lib64/libxcb-icccm.so.4...
Downloading 5.60 K separate debug info for /home/developer/.cache/debuginfod_client/e9ff0b0e0723d410e73385b2f9743c73667b342f/debuginfo...
Downloading 27.08 K separate debug info for /lib64/libxcb-shape.so.0...
Downloading 18.27 K separate debug info for /lib64/libxcb-xinerama.so.0...
Downloading 1.35 M separate debug info for /lib64/libinput.so.10...
Downloading 119.08 K separate debug info for /home/developer/.cache/debuginfod_client/f11a8cdabbeca4901354be7a9d8a4a01f37578d2/debuginfo...
Downloading 388.27 K separate debug info for /lib64/libxcb-xinput.so.0...
Downloading 5.42 M separate debug info for /lib64/libKScreenLocker.so.6...
Downloading 1.99 M separate debug info for /home/developer/.cache/debuginfod_client/eef064e59fcf8a203feb3dd63ec6bab21092ed46/debuginfo...
Downloading 329.64 K separate debug info for /lib64/libdisplay-info.so.2...
Downloading 31.75 K separate debug info for /home/developer/.cache/debuginfod_client/45d15f0db22d907b68211fa3e2a8441a5ffa9e9a/debuginfo...
Downloading 18.54 K separate debug info for /lib64/libxcvt.so.0...
Downloading 1.77 K separate debug info for /home/developer/.cache/debuginfod_client/642f7a1a08839be10e58e7d9334d6a9f9ac86778/debuginfo...
Downloading 42.57 K separate debug info for /lib64/libxcb-render-util.so.0...
Downloading 47.73 K separate debug info for /lib64/libxcb-image.so.0...
Downloading 65.52 K separate debug info for /lib64/libmtdev.so.1...
Downloading 1.80 K separate debug info for /home/developer/.cache/debuginfod_client/331c91c0cb485d70b0a02f810f6928a8a2478189/debuginfo...
Downloading 122.70 K separate debug info for /lib64/libevdev.so.2...
Downloading 6.53 K separate debug info for /home/developer/.cache/debuginfod_client/ac047944a9d2f1bb8c664eae3aa3be9964502fd4/debuginfo...
Downloading 133.65 K separate debug info for /lib64/libwacom.so.9...
Downloading 8.28 K separate debug info for /home/developer/.cache/debuginfod_client/24882a161631a72963db75a504d809ae1575dce6/debuginfo...
Downloading 270.20 K separate debug info for /lib64/libXi.so.6...
Downloading separate debug info for /lib64/libxcb-util.so.1...
Downloading 451.74 K separate debug info for /lib64/libelf.so.1...
Downloading 327.74 K separate debug info for /home/developer/.cache/debuginfod_client/c05674921d8ced55c1838c5db0154ec1fe7f0fa1/debuginfo...
Downloading 133.84 K separate debug info for /lib64/libgudev-1.0.so.0...
Downloading 623.74 K separate debug info for /usr/lib64/qt6/plugins/kwin/plugins/BounceKeysPlugin.so...
Downloading 550.25 K separate debug info for /usr/lib64/qt6/plugins/kwin/plugins/KeyNotificationPlugin.so...
Downloading 862.23 K separate debug info for /usr/lib64/qt6/plugins/kwin/plugins/StickyKeysPlugin.so...
Downloading 1.29 M separate debug info for /usr/lib64/qt6/plugins/kwin/plugins/buttonsrebind.so...
Downloading 2.95 M separate debug info for /usr/lib64/qt6/plugins/kwin/plugins/eis.so...
Downloading 354.04 K separate debug info for /lib64/libeis.so.1...
Downloading 24.90 K separate debug info for /home/developer/.cache/debuginfod_client/5faf57d1e917477f158a736bc89829d421d74bc0/debuginfo...
Downloading 1.84 M separate debug info for /usr/lib64/qt6/plugins/kwin/plugins/krunnerintegration.so...
Downloading 2.31 M separate debug info for /usr/lib64/qt6/plugins/kwin/plugins/nightlight.so...
Downloading 3.06 M separate debug info for /usr/lib64/qt6/plugins/kwin/plugins/screencast.so...
Downloading 217.48 K separate debug info for /lib64/libnvidia-egl-xcb.so.1...
Downloading 59.77 K separate debug info for /home/developer/.cache/debuginfod_client/8fec3016eb69fd45767b51a02a79457a3a84d5eb/debuginfo...
Downloading 258.45 K separate debug info for /lib64/libnvidia-egl-xlib.so.1...
Downloading 298.45 K separate debug info for /lib64/libGL.so.1...
Downloading 2.80 M separate debug info for /usr/lib64/qt6/qml/org/kde/kwin/private/effects/libeffectsplugin.so...
Downloading 3.16 M separate debug info for /usr/lib64/qt6/qml/org/kde/milou/libmilouqmlplugin.so...
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0 --xwayland-fd 8 --xwayl'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7f9fba265dc0 (LWP 2595))]

Cannot QML trace cores :(
/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py:516: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
  boot_time = datetime.utcfromtimestamp(psutil.boot_time()).strftime('%Y-%m-%dT%H:%M:%S')
Downloading 38.72 K source file /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread.cpp...
Downloading 6.11 K source file /usr/src/debug/glibc-2.40-12.fc41.x86_64/nptl/pthread_once.c...
Downloading 6.20 K source file /usr/include/qt6/QtCore/qthread.h...
Downloading source file /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_commit_thread.cpp...
Python Exception <class 'gdb.error'>: value has been optimized out
Downloading 3.12 K source file /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/condition_variable.cc...
Downloading 6.73 K source file /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/std_mutex.h...
Downloading 24.96 K source file /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/x86_64-redhat-linux/bits/gthr-default.h...
Python Exception <class 'gdb.error'>: value has been optimized out
Python Exception <class 'gdb.error'>: value has been optimized out
Python Exception <class 'gdb.error'>: value has been optimized out
Downloading 1.51 K source file /usr/src/debug/glibc-2.40-12.fc41.x86_64/posix/../sysdeps/unix/sysv/linux/nanosleep.c...
Downloading 3.14 K source file /usr/src/debug/glibc-2.40-12.fc41.x86_64/time/../sysdeps/unix/sysv/linux/clock_nanosleep.c...
Python Exception <class 'gdb.error'>: value has been optimized out
Downloading 23.03 K source file /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/main_wayland.cpp...
Downloading 813.00 B source file /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/gui/platform/unix/qunixeventdispatcher.cpp...
Downloading 13.75 K source file /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp...
Downloading source file /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp...
Downloading 10.92 K source file /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qsocketnotifier.cpp...
Downloading 7.61 K source file /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp...
Downloading 29.60 K source file /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qobjectdefs_impl.h...
Downloading 32.93 K source file /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_gpu.cpp...
Downloading 44.11 K source file /usr/src/debug/libdrm-2.4.123-1.fc41.x86_64/redhat-linux-build/../xf86drmMode.c...
/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py:533: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
  'timestamp': datetime.utcnow().isoformat(),
[Current thread is 1 (Thread 0x7f9fba265dc0 (LWP 2595))]

Thread 8 (Thread 0x7f9fa17fe6c0 (LWP 2679)):
#0  0x00007f9fcac793a9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55900502f518, expected=0, op=393, abstime=0x0, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55900502f518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007f9fcac7942f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55900502f518, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007f9fcac7bdf9 in __pthread_cond_wait_common (cond=0x55900502f4f0, mutex=<optimized out>, clockid=0, abstime=0x0) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x55900502f4f0, mutex=<optimized out>) at pthread_cond_wait.c:618
#5  0x00007f9fcae416c0 in __gthread_cond_wait (__cond=0x55900502f4f0, __mutex=<optimized out>) at /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/x86_64-redhat-linux/bits/gthr-default.h:878
#6  std::__condvar::wait (this=0x55900502f4f0, __m=...) at /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/std_mutex.h:171
#7  std::condition_variable::wait (this=this@entry=0x55900502f4f0, __lock=...) at ../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
#8  0x00007f9fce2e5c45 in operator() (__closure=0x559005013e08) at /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_commit_thread.cpp:45
#9  std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#10 std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#11 std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/functional:120
#12 operator()<> (__closure=0x559005013e08) at /usr/include/qt6/QtCore/qthread.h:128
#13 std::__invoke_impl<void, QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#14 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#15 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >::_M_invoke<0> (this=0x559005013e08) at /usr/include/c++/14/bits/std_thread.h:301
#16 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >::operator() (this=0x559005013e08) at /usr/include/c++/14/bits/std_thread.h:308
#17 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>::operator() (this=<optimized out>) at /usr/include/c++/14/future:1439
#18 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>&> (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#19 std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>&> (__fn=...) at /usr/include/c++/14/bits/invoke.h:114
#20 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>(), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/14/bits/std_function.h:291
#21 0x00007f9fce2e11a6 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_function.h:591
#22 std::__future_base::_State_baseV2::_M_do_set (this=0x559005013de0, __f=<optimized out>, __did_set=0x7f9fa17fd6f7) at /usr/include/c++/14/future:596
#23 0x00007f9fcac8207b in __pthread_once_slow (once_control=0x559005013df8, init_routine=0x7f9fcae49f20 <std::__once_proxy()>) at pthread_once.c:116
#24 0x00007f9fcac820e9 in ___pthread_once (once_control=<optimized out>, init_routine=<optimized out>) at pthread_once.c:143
#25 0x00007f9fce2e1e13 in __gthread_once (__once=0x559005013df8, __func=<optimized out>) at /usr/include/c++/14/x86_64-redhat-linux/bits/gthr-default.h:713
#26 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*> (__once=..., __f=@0x7f9fa17fd710: (void (std::__future_base::_State_baseV2::*)(class std::__future_base::_State_baseV2 * const, class std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f9fce2e1170 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/14/mutex:916
#27 std::__future_base::_State_baseV2::_M_set_result (this=0x559005013de0, __res=..., __ignore_failure=true) at /usr/include/c++/14/future:435
#28 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>::_M_complete_async(void) (this=0x559005013de0) at /usr/include/c++/14/future:1712
#29 0x00007f9fcb419247 in std::__future_base::_State_baseV2::wait (this=0x559005013de0) at /usr/include/c++/14/future:357
#30 std::__basic_future<void>::_M_get_result (this=0x55900500fa40) at /usr/include/c++/14/future:748
#31 std::future<void>::get (this=0x55900500fa40) at /usr/include/c++/14/future:920
#32 QThreadCreateThread::run (this=0x55900500fa30) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread.cpp:1308
#33 0x00007f9fcb4b638b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:335
#34 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:263
#35 QThreadPrivate::start (arg=0x55900500fa30) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:294
#36 0x00007f9fcac7ccd7 in start_thread (arg=<optimized out>) at pthread_create.c:448
#37 0x00007f9fcad00c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 7 (Thread 0x7f9fa0ffd6c0 (LWP 2680)):
#0  0x00007f9fcac793a9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x5590056d6e28, expected=0, op=393, abstime=0x0, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5590056d6e28, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007f9fcac7942f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5590056d6e28, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007f9fcac7bdf9 in __pthread_cond_wait_common (cond=0x5590056d6e00, mutex=<optimized out>, clockid=0, abstime=0x0) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x5590056d6e00, mutex=<optimized out>) at pthread_cond_wait.c:618
#5  0x00007f9fcae416c0 in __gthread_cond_wait (__cond=0x5590056d6e00, __mutex=<optimized out>) at /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/x86_64-redhat-linux/bits/gthr-default.h:878
#6  std::__condvar::wait (this=0x5590056d6e00, __m=...) at /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/std_mutex.h:171
#7  std::condition_variable::wait (this=this@entry=0x5590056d6e00, __lock=...) at ../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
#8  0x00007f9fce2e5c45 in operator() (__closure=0x5590056d6b88) at /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_commit_thread.cpp:45
#9  std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#10 std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#11 std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/functional:120
#12 operator()<> (__closure=0x5590056d6b88) at /usr/include/qt6/QtCore/qthread.h:128
#13 std::__invoke_impl<void, QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#14 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#15 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >::_M_invoke<0> (this=0x5590056d6b88) at /usr/include/c++/14/bits/std_thread.h:301
#16 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >::operator() (this=0x5590056d6b88) at /usr/include/c++/14/bits/std_thread.h:308
#17 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>::operator() (this=<optimized out>) at /usr/include/c++/14/future:1439
#18 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>&> (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#19 std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>&> (__fn=...) at /usr/include/c++/14/bits/invoke.h:114
#20 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>(), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/14/bits/std_function.h:291
#21 0x00007f9fce2e11a6 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_function.h:591
#22 std::__future_base::_State_baseV2::_M_do_set (this=0x5590056d6b60, __f=<optimized out>, __did_set=0x7f9fa0ffc6f7) at /usr/include/c++/14/future:596
#23 0x00007f9fcac8207b in __pthread_once_slow (once_control=0x5590056d6b78, init_routine=0x7f9fcae49f20 <std::__once_proxy()>) at pthread_once.c:116
#24 0x00007f9fcac820e9 in ___pthread_once (once_control=<optimized out>, init_routine=<optimized out>) at pthread_once.c:143
#25 0x00007f9fce2e1e13 in __gthread_once (__once=0x5590056d6b78, __func=<optimized out>) at /usr/include/c++/14/x86_64-redhat-linux/bits/gthr-default.h:713
#26 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*> (__once=..., __f=@0x7f9fa0ffc710: (void (std::__future_base::_State_baseV2::*)(class std::__future_base::_State_baseV2 * const, class std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f9fce2e1170 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/14/mutex:916
#27 std::__future_base::_State_baseV2::_M_set_result (this=0x5590056d6b60, __res=..., __ignore_failure=true) at /usr/include/c++/14/future:435
#28 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>::_M_complete_async(void) (this=0x5590056d6b60) at /usr/include/c++/14/future:1712
#29 0x00007f9fcb419247 in std::__future_base::_State_baseV2::wait (this=0x5590056d6b60) at /usr/include/c++/14/future:357
#30 std::__basic_future<void>::_M_get_result (this=0x55900502f430) at /usr/include/c++/14/future:748
#31 std::future<void>::get (this=0x55900502f430) at /usr/include/c++/14/future:920
#32 QThreadCreateThread::run (this=0x55900502f420) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread.cpp:1308
#33 0x00007f9fcb4b638b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:335
#34 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:263
#35 QThreadPrivate::start (arg=0x55900502f420) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:294
#36 0x00007f9fcac7ccd7 in start_thread (arg=<optimized out>) at pthread_create.c:448
#37 0x00007f9fcad00c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 6 (Thread 0x7f9fa1fff6c0 (LWP 2678)):
#0  0x00007f9fcac793a9 in __futex_abstimed_wait_common64 (private=0, futex_word=0x55900502f668, expected=0, op=393, abstime=0x0, cancel=true) at futex-internal.c:57
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55900502f668, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007f9fcac7942f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55900502f668, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007f9fcac7bdf9 in __pthread_cond_wait_common (cond=0x55900502f640, mutex=<optimized out>, clockid=0, abstime=0x0) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x55900502f640, mutex=<optimized out>) at pthread_cond_wait.c:618
#5  0x00007f9fcae416c0 in __gthread_cond_wait (__cond=0x55900502f640, __mutex=<optimized out>) at /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/x86_64-redhat-linux/bits/gthr-default.h:878
#6  std::__condvar::wait (this=0x55900502f640, __m=...) at /usr/src/debug/gcc-14.2.1-3.fc41.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/libstdc++-v3/include/bits/std_mutex.h:171
#7  std::condition_variable::wait (this=this@entry=0x55900502f640, __lock=...) at ../../../../../libstdc++-v3/src/c++11/condition_variable.cc:41
#8  0x00007f9fce2e5c45 in operator() (__closure=0x5590050159b8) at /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_commit_thread.cpp:45
#9  std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#10 std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#11 std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/functional:120
#12 operator()<> (__closure=0x5590050159b8) at /usr/include/qt6/QtCore/qthread.h:128
#13 std::__invoke_impl<void, QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#14 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#15 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >::_M_invoke<0> (this=0x5590050159b8) at /usr/include/c++/14/bits/std_thread.h:301
#16 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >::operator() (this=0x5590050159b8) at /usr/include/c++/14/bits/std_thread.h:308
#17 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>::operator() (this=<optimized out>) at /usr/include/c++/14/future:1439
#18 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>&> (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#19 std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>&> (__fn=...) at /usr/include/c++/14/bits/invoke.h:114
#20 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>(), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/14/bits/std_function.h:291
#21 0x00007f9fce2e11a6 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_function.h:591
#22 std::__future_base::_State_baseV2::_M_do_set (this=0x559005015990, __f=<optimized out>, __did_set=0x7f9fa1ffe6f7) at /usr/include/c++/14/future:596
#23 0x00007f9fcac8207b in __pthread_once_slow (once_control=0x5590050159a8, init_routine=0x7f9fcae49f20 <std::__once_proxy()>) at pthread_once.c:116
#24 0x00007f9fcac820e9 in ___pthread_once (once_control=<optimized out>, init_routine=<optimized out>) at pthread_once.c:143
#25 0x00007f9fce2e1e13 in __gthread_once (__once=0x5590050159a8, __func=<optimized out>) at /usr/include/c++/14/x86_64-redhat-linux/bits/gthr-default.h:713
#26 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*> (__once=..., __f=@0x7f9fa1ffe710: (void (std::__future_base::_State_baseV2::*)(class std::__future_base::_State_baseV2 * const, class std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f9fce2e1170 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/14/mutex:916
#27 std::__future_base::_State_baseV2::_M_set_result (this=0x559005015990, __res=..., __ignore_failure=true) at /usr/include/c++/14/future:435
#28 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>::_M_complete_async(void) (this=0x559005015990) at /usr/include/c++/14/future:1712
#29 0x00007f9fcb419247 in std::__future_base::_State_baseV2::wait (this=0x559005015990) at /usr/include/c++/14/future:357
#30 std::__basic_future<void>::_M_get_result (this=0x559005012f20) at /usr/include/c++/14/future:748
#31 std::future<void>::get (this=0x559005012f20) at /usr/include/c++/14/future:920
#32 QThreadCreateThread::run (this=0x559005012f10) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread.cpp:1308
#33 0x00007f9fcb4b638b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:335
#34 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:263
#35 QThreadPrivate::start (arg=0x559005012f10) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:294
#36 0x00007f9fcac7ccd7 in start_thread (arg=<optimized out>) at pthread_create.c:448
#37 0x00007f9fcad00c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 5 (Thread 0x7f9fab1ff6c0 (LWP 2661)):
#0  0x00007f9fcacf3470 in __GI_ppoll (fds=fds@entry=0x7f9f9c001500, nfds=nfds@entry=2, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#1  0x00007f9fc9dcb8a3 in ppoll (__fds=0x7f9f9c001500, __nfds=2, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#2  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7f9f9c000c90, timeout_usec=<optimized out>, fds=0x7f9f9c001500, n_fds=2) at ../glib/gmain.c:4591
#3  g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f9f9c000c90, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4268
#4  0x00007f9fc9d6c783 in g_main_context_iteration (context=0x7f9f9c000c90, may_block=1) at ../glib/gmain.c:4338
#5  0x00007f9fcb5e9de3 in QEventDispatcherGlib::processEvents (this=0x7f9f9c000ba0, flags=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:396
#6  0x00007f9fcb30221b in QEventLoop::exec (this=this@entry=0x7f9fab1fe790, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/global/qflags.h:34
#7  0x00007f9fcb418d85 in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/global/qflags.h:74
#8  0x00007f9fcb4b638b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:335
#9  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:263
#10 QThreadPrivate::start (arg=0x5590050177f8) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:294
#11 0x00007f9fcac7ccd7 in start_thread (arg=<optimized out>) at pthread_create.c:448
#12 0x00007f9fcad00c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 4 (Thread 0x7f9faa74e6c0 (LWP 2675)):
#0  0x00007f9fcacf3470 in __GI_ppoll (fds=fds@entry=0x5590052df2a0, nfds=nfds@entry=1, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#1  0x00007f9fc9dcb8a3 in ppoll (__fds=0x5590052df2a0, __nfds=1, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#2  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7f9f98000c90, timeout_usec=<optimized out>, fds=0x5590052df2a0, n_fds=1) at ../glib/gmain.c:4591
#3  g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f9f98000c90, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4268
#4  0x00007f9fc9d6c783 in g_main_context_iteration (context=0x7f9f98000c90, may_block=1) at ../glib/gmain.c:4338
#5  0x00007f9fcb5e9de3 in QEventDispatcherGlib::processEvents (this=0x7f9f98000ba0, flags=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:396
#6  0x00007f9fcb30221b in QEventLoop::exec (this=this@entry=0x7f9faa74d790, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/global/qflags.h:34
#7  0x00007f9fcb418d85 in QThread::exec (this=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/global/qflags.h:74
#8  0x00007f9fcb4b638b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:335
#9  (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:263
#10 QThreadPrivate::start (arg=0x5590052df000) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:294
#11 0x00007f9fcac7ccd7 in start_thread (arg=<optimized out>) at pthread_create.c:448
#12 0x00007f9fcad00c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 3 (Thread 0x7f9fac3ff6c0 (LWP 2651)):
#0  0x00007f9fcacf3470 in __GI_ppoll (fds=fds@entry=0x559004ef4af0, nfds=nfds@entry=3, timeout=<optimized out>, timeout@entry=0x0, sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#1  0x00007f9fc9dcb8a3 in ppoll (__fds=0x559004ef4af0, __nfds=3, __timeout=0x0, __ss=0x0) at /usr/include/bits/poll2.h:101
#2  g_main_context_poll_unlocked (priority=<optimized out>, context=0x7f9fa4000cb0, timeout_usec=<optimized out>, fds=0x559004ef4af0, n_fds=3) at ../glib/gmain.c:4591
#3  g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7f9fa4000cb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4268
#4  0x00007f9fc9d6c783 in g_main_context_iteration (context=0x7f9fa4000cb0, may_block=1) at ../glib/gmain.c:4338
#5  0x00007f9fcb5e9de3 in QEventDispatcherGlib::processEvents (this=0x7f9fa4000ba0, flags=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:396
#6  0x00007f9fcb30221b in QEventLoop::exec (this=this@entry=0x7f9fac3fe740, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/global/qflags.h:34
#7  0x00007f9fcb418d85 in QThread::exec (this=this@entry=0x7f9fcc517cc0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/global/qflags.h:74
#8  0x00007f9fcc46a681 in QDBusConnectionManager::run (this=0x7f9fcc517cc0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/dbus/qdbusconnectionmanager.cpp:144
#9  0x00007f9fcb4b638b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:335
#10 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:263
#11 QThreadPrivate::start (arg=0x7f9fcc517cc0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:294
#12 0x00007f9fcac7ccd7 in start_thread (arg=<optimized out>) at pthread_create.c:448
#13 0x00007f9fcad00c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 2 (Thread 0x7f9f94dff6c0 (LWP 2681)):
#0  0x00007f9fcacc9213 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f9f94dfe5d0, rem=0x7f9f94dfe5d0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1  0x00007f9fcacd5307 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x00007f9fce2e5dff in std::this_thread::sleep_for<long, std::ratio<1l, 1000000000l> > (__rtime=...) at /usr/include/c++/14/bits/this_thread_sleep.h:80
#3  std::this_thread::sleep_until<std::chrono::_V2::steady_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > (__atime=...) at /usr/include/c++/14/bits/this_thread_sleep.h:99
#4  operator() (__closure=0x5590056d6ad8) at /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_commit_thread.cpp:60
#5  std::__invoke_impl<void, KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#6  std::__invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#7  std::invoke<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> > (__fn=...) at /usr/include/c++/14/functional:120
#8  operator()<> (__closure=0x5590056d6ad8) at /usr/include/qt6/QtCore/qthread.h:128
#9  std::__invoke_impl<void, QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#10 std::__invoke<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > (__fn=...) at /usr/include/c++/14/bits/invoke.h:96
#11 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >::_M_invoke<0> (this=0x5590056d6ad8) at /usr/include/c++/14/bits/std_thread.h:301
#12 std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >::operator() (this=0x5590056d6ad8) at /usr/include/c++/14/bits/std_thread.h:308
#13 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>::operator() (this=<optimized out>) at /usr/include/c++/14/future:1439
#14 std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>&> (__f=...) at /usr/include/c++/14/bits/invoke.h:61
#15 std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>&> (__fn=...) at /usr/include/c++/14/bits/invoke.h:114
#16 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>(), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/14/bits/std_function.h:291
#17 0x00007f9fce2e11a6 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>::operator() (this=<optimized out>) at /usr/include/c++/14/bits/std_function.h:591
#18 std::__future_base::_State_baseV2::_M_do_set (this=0x5590056d6ab0, __f=<optimized out>, __did_set=0x7f9f94dfe6f7) at /usr/include/c++/14/future:596
#19 0x00007f9fcac8207b in __pthread_once_slow (once_control=0x5590056d6ac8, init_routine=0x7f9fcae49f20 <std::__once_proxy()>) at pthread_once.c:116
#20 0x00007f9fcac820e9 in ___pthread_once (once_control=<optimized out>, init_routine=<optimized out>) at pthread_once.c:143
#21 0x00007f9fce2e1e13 in __gthread_once (__once=0x5590056d6ac8, __func=<optimized out>) at /usr/include/c++/14/x86_64-redhat-linux/bits/gthr-default.h:713
#22 std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()>*, bool*> (__once=..., __f=@0x7f9f94dfe710: (void (std::__future_base::_State_baseV2::*)(class std::__future_base::_State_baseV2 * const, class std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>()> *, bool *)) 0x7f9fce2e1170 <std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>) at /usr/include/c++/14/mutex:916
#23 std::__future_base::_State_baseV2::_M_set_result (this=0x5590056d6ab0, __res=..., __ignore_failure=true) at /usr/include/c++/14/future:435
#24 std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<QThread::create<KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()> >(KWin::DrmCommitThread::DrmCommitThread(KWin::DrmGpu*, const QString&)::<lambda()>&&)::<lambda(auto:48&& ...)> > >, void>::_M_complete_async(void) (this=0x5590056d6ab0) at /usr/include/c++/14/future:1712
#25 0x00007f9fcb419247 in std::__future_base::_State_baseV2::wait (this=0x5590056d6ab0) at /usr/include/c++/14/future:357
#26 std::__basic_future<void>::_M_get_result (this=0x5590056d3cf0) at /usr/include/c++/14/future:748
#27 std::future<void>::get (this=0x5590056d3cf0) at /usr/include/c++/14/future:920
#28 QThreadCreateThread::run (this=0x5590056d3ce0) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread.cpp:1308
#29 0x00007f9fcb4b638b in operator() (__closure=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:335
#30 (anonymous namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> > (t=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:263
#31 QThreadPrivate::start (arg=0x5590056d3ce0) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/thread/qthread_unix.cpp:294
#32 0x00007f9fcac7ccd7 in start_thread (arg=<optimized out>) at pthread_create.c:448
#33 0x00007f9fcad00c8c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 1 (Thread 0x7f9fba265dc0 (LWP 2595)):
[KCrash Handler]
#5  KWin::DrmGpu::presentationClock (this=0x28c15e2ee15f5077) at /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_gpu.cpp:138
#6  KWin::DrmGpu::pageFlipHandler (fd=19, sequence=0, sec=14129, usec=699889, crtc_id=57, user_data=0x7f9f7c003550) at /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_gpu.cpp:578
#7  0x00007f9fcab96580 in drmHandleEvent (fd=19, evctx=0x7fff4c0c7fd0) at ../xf86drmMode.c:1070
#8  0x00007f9fce2f9d2c in KWin::DrmGpu::dispatchEvents (this=<optimized out>) at /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/backends/drm/drm_gpu.cpp:593
#9  0x00007f9fcb35bac1 in QtPrivate::QSlotObjectBase::call (this=0x559005035c50, r=<optimized out>, a=0x7fff4c0c8110) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#10 doActivate<false> (sender=0x559005027b60, signal_index=3, argv=0x7fff4c0c8110) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qobject.cpp:4120
#11 0x00007f9fcb3520c7 in QMetaObject::activate (sender=sender@entry=0x559005027b60, m=m@entry=0x7f9fcb879fa0, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff4c0c8110) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qobject.cpp:4180
#12 0x00007f9fcb36a43d in QSocketNotifier::activated (this=this@entry=0x559005027b60, _t1=..., _t2=<optimized out>, _t3=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:195
#13 0x00007f9fcb36ac2b in QSocketNotifier::event (this=0x559005027b60, e=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qsocketnotifier.cpp:327
#14 0x00007f9fcc63d6b8 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x559005027b60, e=0x7fff4c0c8250) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/widgets/kernel/qapplication.cpp:3294
#15 0x00007f9fcb2f3a38 in QCoreApplication::notifyInternal2 (receiver=0x559005027b60, event=0x7fff4c0c8250) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1165
#16 0x00007f9fcb2f3c8d in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qcoreapplication.cpp:1609
#17 0x00007f9fcb4b8686 in QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x559004f28bc0) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:254
#18 0x00007f9fcb4b8fd4 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/kernel/qeventdispatcher_unix.cpp:470
#19 0x00007f9fcc0b8e32 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#20 0x00007f9fcb30221b in QEventLoop::exec (this=this@entry=0x7fff4c0c8480, flags=..., flags@entry=...) at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/global/qflags.h:34
#21 0x00007f9fcb2fda2e in QCoreApplication::exec () at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/corelib/global/qflags.h:74
#22 0x00007f9fcbad723d in QGuiApplication::exec () at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/gui/kernel/qguiapplication.cpp:1975
#23 0x00007f9fcc63d629 in QApplication::exec () at /usr/src/debug/qt6-qtbase-6.8.0-4.fc41.x86_64/src/widgets/kernel/qapplication.cpp:2562
#24 0x0000558ffba47895 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin-6.2.4-1.fc41.x86_64/src/main_wayland.cpp:630

Reported using DrKonqi
Comment 1 David Edmundson 2025-01-06 15:03:47 UTC
*** Bug 498319 has been marked as a duplicate of this bug. ***
Comment 2 Zamundaaa 2025-01-17 14:16:35 UTC
*** Bug 498776 has been marked as a duplicate of this bug. ***
Comment 3 Bug Janitor Service 2025-01-17 14:23:03 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/7031
Comment 4 Zamundaaa 2025-01-17 15:29:18 UTC
Git commit c79ef9055f3b6717d0660998c1997dac9199eabb by Xaver Hugl.
Committed on 17/01/2025 at 14:22.
Pushed by zamundaaa into branch 'master'.

backends/drm: asynchronously wait for idle before doing modesets

The previous code relied on waitIdle() *always* working, which isn't the case. Sometimes,
weird kernel bugs can make the timeout trigger wrongly, and sometimes, the kernel just
doesn't send a pageflip event in a reasonable time frame or at all.

This should fix at least most cases from
https://crash-reports.kde.org/share/issue/c27bccb6794a48349b42b70a4e655619/

M  +24   -11   src/backends/drm/drm_gpu.cpp
M  +4    -2    src/backends/drm/drm_gpu.h
M  +3    -2    src/backends/drm/drm_output.cpp
M  +5    -2    src/backends/drm/drm_pipeline.cpp
M  +1    -1    src/backends/drm/drm_pipeline.h

https://invent.kde.org/plasma/kwin/-/commit/c79ef9055f3b6717d0660998c1997dac9199eabb
Comment 5 Nate Graham 2025-01-23 15:51:27 UTC
*** Bug 499036 has been marked as a duplicate of this bug. ***
Comment 6 Zamundaaa 2025-02-10 17:58:40 UTC
Git commit da5e9b02dacacdeea274a6214660f646268ed29a by Xaver Hugl.
Committed on 10/02/2025 at 17:21.
Pushed by zamundaaa into branch 'Plasma/6.3'.

backends/drm: asynchronously wait for idle before doing modesets

The previous code relied on waitIdle() *always* working, which isn't the case. Sometimes,
weird kernel bugs can make the timeout trigger wrongly, and sometimes, the kernel just
doesn't send a pageflip event in a reasonable time frame or at all.

This should fix at least most cases from
https://crash-reports.kde.org/share/issue/c27bccb6794a48349b42b70a4e655619/


(cherry picked from commit c79ef9055f3b6717d0660998c1997dac9199eabb)

Co-authored-by: Xaver Hugl <xaver.hugl@gmail.com>

M  +24   -11   src/backends/drm/drm_gpu.cpp
M  +4    -2    src/backends/drm/drm_gpu.h
M  +3    -2    src/backends/drm/drm_output.cpp
M  +5    -2    src/backends/drm/drm_pipeline.cpp
M  +1    -1    src/backends/drm/drm_pipeline.h

https://invent.kde.org/plasma/kwin/-/commit/da5e9b02dacacdeea274a6214660f646268ed29a