Bug 502504 - KWin crashes in KWin::AbstractDataSource::setKeyboardModifiers() after wl_data_device.start_drag request with source set to NULL
Summary: KWin crashes in KWin::AbstractDataSource::setKeyboardModifiers() after wl_dat...
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: Wayland drag-and-drop (show other bugs)
Version: 6.3.4
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
: 502497 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-04-06 23:14 UTC by acct_cl
Modified: 2025-04-12 03:05 UTC (History)
2 users (show)

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


Attachments
Example applications that reproduces the issue (6.42 KB, text/x-csrc)
2025-04-06 23:14 UTC, acct_cl
Details

Note You need to log in before you can comment on or make changes to this bug.
Description acct_cl 2025-04-06 23:14:32 UTC
Created attachment 180050 [details]
Example applications that reproduces the issue

SUMMARY
When the client calls wl_data_manager.start_drag with the source argument set to NULL, KWin crashes.
Wayland allows source to be set to NULL in case of client internal data transfers:
> The source argument is the data source that provides the data for the eventual data transfer. If source is NULL, enter, leave and motion events are sent only to the client that initiated the drag and the client is expected to handle the data passing internally. If source is destroyed, the drag-and-drop session will be cancelled.
(https://wayland.app/protocols/wayland#wl_data_device:request:start_drag)

STEPS TO REPRODUCE
1. Create a wayland application that performs drag-n-drop.
2. Obtain an implicit grab serial (from wl_pointer.button for example)
3. Call wl_data_device_start_drag(data_device_ptr, NULL, valid_surface_ptr, ...);
4. The request causes compositor to crash.

OBSERVED RESULT
The compositor crashes.

EXPECTED RESULT
Compositor starts the drag-n-drop operation. Only the client that initiated the request receives enter, motion and leave events.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.3.4
KDE Frameworks Version: 6.12.0
Qt Version: 6.8.3
Kernel Version: 6.14.0-3-cachyos-bore (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 9 5900HX with Radeon Graphics
Memory: 31.2 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3080 Laptop GPU

ADDITIONAL INFORMATION
I wrote a simple wayland application that demonstrates the issue.
You can run it using the following steps:
1. Download main.c (located in the attachment)
2. Create a protos/ directory in the same directory as main.c
3. Generate xdg-shell protocol code using wayland-scanner with the following commands:
3.1. wayland-scanner client-header < /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml >> protos/xdg-shell.h
3.2. wayland-scanner private-code < /usr/share/wayland-protocols/stable/xdg-shell/xdg-shell.xml >> protos/xdg-shell.c
4. Compile using gcc/clang:
4.1. clang main.c protos/xdg-shell.c -o test -lwayland-client
5. Run ./test
6. Click anywhere in the opened black window (application handles only enter, leave, motion and button events from wl_pointer, any other event will result in abort() being called by libwayland-client)

Backtrace:
Application: KWin (kwin_wayland), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}

warning: Can't open file /home/kotb/.cache/plasma_theme_default.kcache (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:JSVMStack:QtQml (deleted) during file-backed mapping note processing

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

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

warning: Can't open file /memfd:environment_factory_buffer (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:wayland-cursor (deleted) during file-backed mapping note processing

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

warning: Can't open file /memfd:/.glXXXXXX (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 /memfd:JITCode: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:wayland-shm (deleted) during file-backed mapping note processing
[New LWP 1055313]
[New LWP 1055325]
[New LWP 1055326]
[New LWP 1055327]
[New LWP 1055314]
[New LWP 1135634]
[New LWP 1135631]
[New LWP 1135637]
[New LWP 1055335]
[New LWP 1135635]
[New LWP 1135632]
[New LWP 1135680]
[New LWP 1135636]
[New LWP 1135633]

warning: `/home/kotb/.cache/debuginfod_client/360ea5e7d02301bc4e689c4d05b9d158183c2004/debuginfo': can't read symbols: file format not recognized.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0 --xwayland-fd 8 --xwayland-fd 9 --xwayland-display :1 --xwayland-xauthority /run/user/1000/xauth_kzxKAo --xwayland'.
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 0x7f3846305a40 (LWP 1055313))]

Cannot QML trace cores :(
/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py:547: 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')
/usr/share/drkonqi/gdb/python/gdb_preamble/preamble.py:564: 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 0x7f3846305a40 (LWP 1055313))]

Thread 14 (Thread 0x7f3785b256c0 (LWP 1135633)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=a3@entry=3241, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2  0x00007f384b6a04bc in __futex_abstimed_wait_common64 (private=0, futex_word=0x5772e6f04248, expected=3241, op=<optimized out>, abstime=0x7f3785b24a50, cancel=true) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5772e6f04248, expected=expected@entry=3241, clockid=clockid@entry=1, abstime=abstime@entry=0x7f3785b24a50, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4  0x00007f384b6a051f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5772e6f04248, expected=expected@entry=3241, clockid=clockid@entry=1, abstime=abstime@entry=0x7f3785b24a50, private=private@entry=0) at futex-internal.c:139
#5  0x00007f384b6a2e11 in __pthread_cond_wait_common (cond=0x5772e6f04228, mutex=0x5772e6f04200, clockid=1, abstime=0x7f3785b24a50) at pthread_cond_wait.c:426
#6  ___pthread_cond_timedwait64 (cond=0x5772e6f04228, mutex=0x5772e6f04200, abstime=0x7f3785b24a50) at pthread_cond_wait.c:483
#7  0x00007f384b2e8ca3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b2e29b5 in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 13 (Thread 0x7f37eb7fe6c0 (LWP 1135636)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=a3@entry=3755, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2  0x00007f384b6a04bc in __futex_abstimed_wait_common64 (private=0, futex_word=0x5772e6af2cac, expected=3755, op=<optimized out>, abstime=0x7f37eb7fda50, cancel=true) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5772e6af2cac, expected=expected@entry=3755, clockid=clockid@entry=1, abstime=abstime@entry=0x7f37eb7fda50, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4  0x00007f384b6a051f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5772e6af2cac, expected=expected@entry=3755, clockid=clockid@entry=1, abstime=abstime@entry=0x7f37eb7fda50, private=private@entry=0) at futex-internal.c:139
#5  0x00007f384b6a2e11 in __pthread_cond_wait_common (cond=0x5772e6af2c88, mutex=0x5772e6af2c60, clockid=1, abstime=0x7f37eb7fda50) at pthread_cond_wait.c:426
#6  ___pthread_cond_timedwait64 (cond=0x5772e6af2c88, mutex=0x5772e6af2c60, abstime=0x7f37eb7fda50) at pthread_cond_wait.c:483
#7  0x00007f384b2e8ca3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b2e29b5 in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 12 (Thread 0x7f37911536c0 (LWP 1135680)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=a3@entry=3694, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2  0x00007f384b6a04bc in __futex_abstimed_wait_common64 (private=0, futex_word=0x5772e67e1cf8, expected=3694, op=<optimized out>, abstime=0x7f3791152a50, cancel=true) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5772e67e1cf8, expected=expected@entry=3694, clockid=clockid@entry=1, abstime=abstime@entry=0x7f3791152a50, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4  0x00007f384b6a051f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5772e67e1cf8, expected=expected@entry=3694, clockid=clockid@entry=1, abstime=abstime@entry=0x7f3791152a50, private=private@entry=0) at futex-internal.c:139
#5  0x00007f384b6a2e11 in __pthread_cond_wait_common (cond=0x5772e67e1cd8, mutex=0x5772e67e1cb0, clockid=1, abstime=0x7f3791152a50) at pthread_cond_wait.c:426
#6  ___pthread_cond_timedwait64 (cond=0x5772e67e1cd8, mutex=0x5772e67e1cb0, abstime=0x7f3791152a50) at pthread_cond_wait.c:483
#7  0x00007f384b2e8ca3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b2e29b5 in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 11 (Thread 0x7f3784dbf6c0 (LWP 1135632)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=a3@entry=3510, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2  0x00007f384b6a04bc in __futex_abstimed_wait_common64 (private=0, futex_word=0x5772e6f0c61c, expected=3510, op=<optimized out>, abstime=0x7f3784dbea50, cancel=true) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5772e6f0c61c, expected=expected@entry=3510, clockid=clockid@entry=1, abstime=abstime@entry=0x7f3784dbea50, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4  0x00007f384b6a051f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5772e6f0c61c, expected=expected@entry=3510, clockid=clockid@entry=1, abstime=abstime@entry=0x7f3784dbea50, private=private@entry=0) at futex-internal.c:139
#5  0x00007f384b6a2e11 in __pthread_cond_wait_common (cond=0x5772e6f0c5f8, mutex=0x5772e6f0c5d0, clockid=1, abstime=0x7f3784dbea50) at pthread_cond_wait.c:426
#6  ___pthread_cond_timedwait64 (cond=0x5772e6f0c5f8, mutex=0x5772e6f0c5d0, abstime=0x7f3784dbea50) at pthread_cond_wait.c:483
#7  0x00007f384b2e8ca3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b2e29b5 in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 10 (Thread 0x7f37ebfff6c0 (LWP 1135635)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=a3@entry=3562, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2  0x00007f384b6a04bc in __futex_abstimed_wait_common64 (private=0, futex_word=0x5772e6b13c48, expected=3562, op=<optimized out>, abstime=0x7f37ebffea50, cancel=true) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5772e6b13c48, expected=expected@entry=3562, clockid=clockid@entry=1, abstime=abstime@entry=0x7f37ebffea50, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4  0x00007f384b6a051f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5772e6b13c48, expected=expected@entry=3562, clockid=clockid@entry=1, abstime=abstime@entry=0x7f37ebffea50, private=private@entry=0) at futex-internal.c:139
#5  0x00007f384b6a2e11 in __pthread_cond_wait_common (cond=0x5772e6b13c28, mutex=0x5772e6b13c00, clockid=1, abstime=0x7f37ebffea50) at pthread_cond_wait.c:426
#6  ___pthread_cond_timedwait64 (cond=0x5772e6b13c28, mutex=0x5772e6b13c00, abstime=0x7f37ebffea50) at pthread_cond_wait.c:483
#7  0x00007f384b2e8ca3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b2e29b5 in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 9 (Thread 0x7f3831dff6c0 (LWP 1055335)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:49
#2  0x00007f384b69fe74 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:75
#3  0x00007f384b71aa06 in __GI_ppoll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>, sigmask=<optimized out>) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007f3849d41e27 in ??? () at /usr/lib/libglib-2.0.so.0
#5  0x00007f3849cdd535 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#6  0x00007f384b3c531d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#7  0x00007f384b161826 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b25a569 in QThread::run() () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 8 (Thread 0x7f3793fff6c0 (LWP 1135637)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=a3@entry=3239, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2  0x00007f384b6a04bc in __futex_abstimed_wait_common64 (private=0, futex_word=0x5772e6f036d8, expected=3239, op=<optimized out>, abstime=0x7f3793ffea50, cancel=true) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5772e6f036d8, expected=expected@entry=3239, clockid=clockid@entry=1, abstime=abstime@entry=0x7f3793ffea50, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4  0x00007f384b6a051f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5772e6f036d8, expected=expected@entry=3239, clockid=clockid@entry=1, abstime=abstime@entry=0x7f3793ffea50, private=private@entry=0) at futex-internal.c:139
#5  0x00007f384b6a2e11 in __pthread_cond_wait_common (cond=0x5772e6f036b8, mutex=0x5772e6f03690, clockid=1, abstime=0x7f3793ffea50) at pthread_cond_wait.c:426
#6  ___pthread_cond_timedwait64 (cond=0x5772e6f036b8, mutex=0x5772e6f03690, abstime=0x7f3793ffea50) at pthread_cond_wait.c:483
#7  0x00007f384b2e8ca3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b2e29b5 in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 7 (Thread 0x7f378b7fe6c0 (LWP 1135631)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=a3@entry=2934, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2  0x00007f384b6a04bc in __futex_abstimed_wait_common64 (private=0, futex_word=0x5772e6a20d2c, expected=2934, op=<optimized out>, abstime=0x7f378b7fda50, cancel=true) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5772e6a20d2c, expected=expected@entry=2934, clockid=clockid@entry=1, abstime=abstime@entry=0x7f378b7fda50, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4  0x00007f384b6a051f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5772e6a20d2c, expected=expected@entry=2934, clockid=clockid@entry=1, abstime=abstime@entry=0x7f378b7fda50, private=private@entry=0) at futex-internal.c:139
#5  0x00007f384b6a2e11 in __pthread_cond_wait_common (cond=0x5772e6a20d08, mutex=0x5772e6a20ce0, clockid=1, abstime=0x7f378b7fda50) at pthread_cond_wait.c:426
#6  ___pthread_cond_timedwait64 (cond=0x5772e6a20d08, mutex=0x5772e6a20ce0, abstime=0x7f378b7fda50) at pthread_cond_wait.c:483
#7  0x00007f384b2e8ca3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b2e29b5 in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 6 (Thread 0x7f377c7cb6c0 (LWP 1135634)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=a3@entry=3290, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=4294967295, nr=202) at cancellation.c:49
#2  0x00007f384b6a04bc in __futex_abstimed_wait_common64 (private=0, futex_word=0x5772e6ed637c, expected=3290, op=<optimized out>, abstime=0x7f377c7caa50, cancel=true) at futex-internal.c:57
#3  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x5772e6ed637c, expected=expected@entry=3290, clockid=clockid@entry=1, abstime=abstime@entry=0x7f377c7caa50, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#4  0x00007f384b6a051f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5772e6ed637c, expected=expected@entry=3290, clockid=clockid@entry=1, abstime=abstime@entry=0x7f377c7caa50, private=private@entry=0) at futex-internal.c:139
#5  0x00007f384b6a2e11 in __pthread_cond_wait_common (cond=0x5772e6ed6358, mutex=0x5772e6ed6330, clockid=1, abstime=0x7f377c7caa50) at pthread_cond_wait.c:426
#6  ___pthread_cond_timedwait64 (cond=0x5772e6ed6358, mutex=0x5772e6ed6330, abstime=0x7f377c7caa50) at pthread_cond_wait.c:483
#7  0x00007f384b2e8ca3 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b2e29b5 in ??? () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 5 (Thread 0x7f38445ff6c0 (LWP 1055314)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:49
#2  0x00007f384b69fe74 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:75
#3  0x00007f384b71aa06 in __GI_ppoll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>, sigmask=<optimized out>) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007f3849d41e27 in ??? () at /usr/lib/libglib-2.0.so.0
#5  0x00007f3849cdd535 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#6  0x00007f384b3c531d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#7  0x00007f384b161826 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b25a3f9 in QThread::exec() () at /usr/lib/libQt6Core.so.6
#9  0x00007f384c2186ce in QDBusConnectionManager::run (this=0x7f384c2a3b20 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__q_manager> >::instance()::holder>) at /usr/src/debug/qt6-base/qtbase/src/dbus/qdbusconnectionmanager.cpp:144
#10 0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#11 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#12 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 4 (Thread 0x7f38423fd6c0 (LWP 1055327)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:49
#2  0x00007f384b69fe74 in __syscall_cancel (a1=<optimized out>, a2=<optimized out>, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=8, a6=a6@entry=0, nr=271) at cancellation.c:75
#3  0x00007f384b71aa06 in __GI_ppoll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>, sigmask=<optimized out>) at ../sysdeps/unix/sysv/linux/ppoll.c:42
#4  0x00007f3849d41e27 in ??? () at /usr/lib/libglib-2.0.so.0
#5  0x00007f3849cdd535 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#6  0x00007f384b3c531d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#7  0x00007f384b161826 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#8  0x00007f384b25a569 in QThread::run() () at /usr/lib/libQt6Core.so.6
#9  0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#11 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 3 (Thread 0x7f3842bfe6c0 (LWP 1055326)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=a1@entry=0, a2=a2@entry=0, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=0, nr=230) at cancellation.c:49
#2  0x00007f384b6f0a82 in __GI___clock_nanosleep (clock_id=<optimized out>, clock_id@entry=0, flags=flags@entry=0, req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#3  0x00007f384b6fcc27 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#4  0x00007f384de16f70 in ??? () at /usr/lib/libkwin.so.6
#5  0x00007f384de174ca in ??? () at /usr/lib/libkwin.so.6
#6  0x00007f384de10846 in ??? () at /usr/lib/libkwin.so.6
#7  0x00007f384b6a8b6b in __pthread_once_slow (once_control=0x5772e5bc0db8, init_routine=0x7f384ace0620 <std::__once_proxy()>) at pthread_once.c:116
#8  0x00007f384b6a8be9 in ___pthread_once (once_control=<optimized out>, init_routine=<optimized out>) at pthread_once.c:143
#9  0x00007f384de11330 in ??? () at /usr/lib/libkwin.so.6
#10 0x00007f384b251f15 in ??? () at /usr/lib/libQt6Core.so.6
#11 0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#12 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#13 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 2 (Thread 0x7f38433ff6c0 (LWP 1055325)):
#0  __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1  0x00007f384b69fe33 in __internal_syscall_cancel (a1=a1@entry=0, a2=a2@entry=0, a3=<optimized out>, a4=<optimized out>, a5=a5@entry=0, a6=a6@entry=0, nr=230) at cancellation.c:49
#2  0x00007f384b6f0a82 in __GI___clock_nanosleep (clock_id=<optimized out>, clock_id@entry=0, flags=flags@entry=0, req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#3  0x00007f384b6fcc27 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#4  0x00007f384de16f70 in ??? () at /usr/lib/libkwin.so.6
#5  0x00007f384de174ca in ??? () at /usr/lib/libkwin.so.6
#6  0x00007f384de10846 in ??? () at /usr/lib/libkwin.so.6
#7  0x00007f384b6a8b6b in __pthread_once_slow (once_control=0x5772e5bc0e08, init_routine=0x7f384ace0620 <std::__once_proxy()>) at pthread_once.c:116
#8  0x00007f384b6a8be9 in ___pthread_once (once_control=<optimized out>, init_routine=<optimized out>) at pthread_once.c:143
#9  0x00007f384de11330 in ??? () at /usr/lib/libkwin.so.6
#10 0x00007f384b251f15 in ??? () at /usr/lib/libQt6Core.so.6
#11 0x00007f384b2dc3db in ??? () at /usr/lib/libQt6Core.so.6
#12 0x00007f384b6a370a in start_thread (arg=<optimized out>) at pthread_create.c:448
#13 0x00007f384b727aac in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Thread 1 (Thread 0x7f3846305a40 (LWP 1055313)):
[KCrash Handler]
#5  0x00007f384de973c4 in KWin::AbstractDataSource::setKeyboardModifiers(QFlags<Qt::KeyboardModifier>) () at /usr/lib/libkwin.so.6
#6  0x00007f384dc30183 in ??? () at /usr/lib/libkwin.so.6
#7  0x00007f384b1b3f1c in ??? () at /usr/lib/libQt6Core.so.6
#8  0x00007f384defc618 in KWin::SeatInterface::startDrag(KWin::AbstractDataSource*, KWin::SurfaceInterface*, int, KWin::DragAndDropIcon*) () at /usr/lib/libkwin.so.6
#9  0x00007f384b1b3f1c in ??? () at /usr/lib/libQt6Core.so.6
#10 0x00007f384de9b29c in KWin::DataDeviceInterface::dragStarted(KWin::AbstractDataSource*, KWin::SurfaceInterface*, unsigned int, KWin::DragAndDropIcon*) () at /usr/lib/libkwin.so.6
#11 0x00007f3849796976 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#12 0x00007f384979312c in ffi_call_int (cif=cif@entry=0x7ffe07ec9960, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:676
#13 0x00007f3849795f0e in ffi_call (cif=cif@entry=0x7ffe07ec9960, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffe07ec9a30) at ../src/x86/ffi64.c:713
#14 0x00007f384abf2e85 in wl_closure_invoke (closure=closure@entry=0x5772e7214560, target=<optimized out>, target@entry=0x5772e730a1d0, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x5772e7cbd780, flags=2) at ../wayland-1.23.1/src/connection.c:1228
#15 0x00007f384abf7d22 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x5772e7cbd780) at ../wayland-1.23.1/src/wayland-server.c:444
#16 0x00007f384abf6112 in wl_event_loop_dispatch (loop=0x5772e5b76630, timeout=<optimized out>) at ../wayland-1.23.1/src/event-loop.c:1105
#17 0x00007f384dea54ea in KWin::Display::dispatchEvents() () at /usr/lib/libkwin.so.6
#18 0x00007f384b1b3f1c in ??? () at /usr/lib/libQt6Core.so.6
#19 0x00007f384b1bd608 in QSocketNotifier::event(QEvent*) () at /usr/lib/libQt6Core.so.6
#20 0x00007f384c4ff04a in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5772e64e35a0, e=0x7ffe07eca260) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3296
#21 0x00007f384b156c60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#22 0x00007f384b2da9d8 in QEventDispatcherUNIXPrivate::activateSocketNotifiers() () at /usr/lib/libQt6Core.so.6
#23 0x00007f384b2e2052 in QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#24 0x00007f384be63df3 in QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Gui.so.6
#25 0x00007f384b161826 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#26 0x00007f384b15a356 in QCoreApplication::exec() () at /usr/lib/libQt6Core.so.6
#27 0x00005772db1160a1 in ??? ()
#28 0x00007f384b635488 in __libc_start_call_main (main=main@entry=0x5772db1140e0, argc=argc@entry=14, argv=argv@entry=0x7ffe07ecab88) at ../sysdeps/nptl/libc_start_call_main.h:58
#29 0x00007f384b63554c in __libc_start_main_impl (main=0x5772db1140e0, argc=14, argv=0x7ffe07ecab88, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe07ecab78) at ../csu/libc-start.c:360
#30 0x00005772db11c415 in ??? ()
Warning: the current language does not match this frame.
Comment 1 acct_cl 2025-04-06 23:15:11 UTC
*** Bug 502497 has been marked as a duplicate of this bug. ***
Comment 2 TraceyC 2025-04-07 22:05:33 UTC
Thank you for the very detailed bug report and the example application. Unfortunately the backtrace is incomplete and missing debug symbols for the following lines that we need to figure out exactly what's going wrong:

#6  0x00007f384dc30183 in ??? () at /usr/lib/libkwin.so.6
#7  0x00007f384b1b3f1c in ??? () at /usr/lib/libQt6Core.so.6

Could you please install debug symbols and attach a new symbolicated backtrace generated by using `coredumpctl gdb` in a terminal window? See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Retrieving_a_backtrace_using_coredumpctl for details about how to do this. Thanks again!
Comment 3 acct_cl 2025-04-07 22:42:07 UTC
My bad, here is the backtrace for this thread with debug symbols:

Thread 1 (Thread 0x7cc708988a40 (LWP 366204)):
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007cc70eaa56d3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89
#2  0x00007cc70ea4bba0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007cc7124804da in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-6.12.0/src/kcrash.cpp:605
#4  0x00007cc70ea4bcd0 in <signal handler called> () at /usr/lib/libc.so.6
#5  KWin::AbstractDataSource::setKeyboardModifiers (this=0x0, heldModifiers=...) at /usr/src/debug/kwin/kwin-6.3.4/src/wayland/abstract_data_source.cpp:19
#6  0x00007cc711e311e3 in KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}::operator()() const (__closure=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/input.cpp:2500
#7  QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}>::call(KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}&, void**)::{lambda()#1}::operator()() const (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:116
#8  QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}>::call(KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}&, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}>::call(KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}&, void**)::{lambda()#1}&&) (args=<optimized out>, fn=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:65
#9  QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}>::call(KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}&, void**) (f=<optimized out>, arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:115
#10 QtPrivate::FunctorCallable<KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}>::call<QtPrivate::List<>, void>(KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}&, void*, void**) (f=<optimized out>, arg=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:337
#11 QtPrivate::QCallableObject<KWin::DragAndDropInputFilter::DragAndDropInputFilter()::{lambda()#1}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:547
#12 0x00007cc70f1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5d8186c7b5d0, r=0x5d8186c65930, a=0x7ffd4994e678, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#13 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#14 0x00007cc7120fbd58 in KWin::SeatInterface::startDrag (this=0x5d81864ae680, dragSource=<optimized out>, originSurface=0x5d8187c167e0, dragSerial=<optimized out>, dragIcon=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/wayland/seat.cpp:1356
#15 KWin::SeatInterface::startDrag (this=0x5d81864ae680, dragSource=<optimized out>, originSurface=<optimized out>, dragSerial=<optimized out>, dragIcon=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/wayland/seat.cpp:1316
#16 0x00007cc70f1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5d8187aa5a50, r=0x5d81864ae680, a=0x7ffd4994e840, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#17 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#18 0x00007cc71209ebf8 in QMetaObject::activate<void, KWin::AbstractDataSource*, KWin::SurfaceInterface*, unsigned int, KWin::DragAndDropIcon*> (sender=<optimized out>, mo=<optimized out>, local_signal_index=1, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs.h:306
#19 KWin::DataDeviceInterface::dragStarted (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>, _t4=<optimized out>) at /usr/src/debug/kwin/build/src/kwin_autogen/include/moc_datadevice.cpp:243
#20 0x00007cc70d418976 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#21 0x00007cc70d41512c in ffi_call_int (cif=cif@entry=0x7ffd4994ea30, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:676
#22 0x00007cc70d417f0e in ffi_call (cif=cif@entry=0x7ffd4994ea30, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffd4994eb00) at ../src/x86/ffi64.c:713
#23 0x00007cc710120e85 in wl_closure_invoke (closure=closure@entry=0x5d8188f38080, target=<optimized out>, target@entry=0x5d81883294e0, opcode=opcode@entry=0, data=<optimized out>, data@entry=0x5d8188c5b650, flags=2) at ../wayland-1.23.1/src/connection.c:1228
#24 0x00007cc710125d22 in wl_client_connection_data (fd=<optimized out>, mask=<optimized out>, data=0x5d8188c5b650) at ../wayland-1.23.1/src/wayland-server.c:444
#25 0x00007cc710124112 in wl_event_loop_dispatch (loop=0x5d81864a6c60, timeout=<optimized out>) at ../wayland-1.23.1/src/event-loop.c:1105
#26 0x00007cc7120a8d2a in KWin::Display::dispatchEvents (this=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/wayland/display.cpp:121
#27 0x00007cc70f1b6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5d8186e13090, r=0x5d81864cd010, a=0x7ffd4994f220, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#28 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
#29 0x00007cc70f1bee7e in QMetaObject::activate<void, QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal> (sender=0x5d8186e0ce20, mo=<optimized out>, local_signal_index=0, ret=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:306
#30 QSocketNotifier::activated (this=0x5d8186e0ce20, _t1=..., _t2=<optimized out>, _t3=...) at /usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:161
#31 QSocketNotifier::event (this=0x5d8186e0ce20, e=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qsocketnotifier.cpp:327
#32 0x00007cc7104fed9e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5d8186e0ce20, e=0x7ffd4994f330) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3301
#33 0x00007cc70f15a018 in QCoreApplication::notifyInternal2 (receiver=0x5d8186e0ce20, event=0x7ffd4994f330) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#34 0x00007cc70f2e28d8 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7ffd4994f330) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546
#35 QEventDispatcherUNIXPrivate::activateSocketNotifiers (this=this@entry=0x5d818640c600) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:254
#36 0x00007cc70f2e3412 in QEventDispatcherUNIX::processEvents (this=<optimized out>, flags=..., flags@entry=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp:470
#37 0x00007cc70fe72943 in QUnixEventDispatcherQPA::processEvents (this=<optimized out>, flags=...) at /usr/src/debug/qt6-base/qtbase/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#38 0x00007cc70f165376 in QEventLoop::processEvents (this=0x7ffd4994f510, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
#39 QEventLoop::exec (this=0x7ffd4994f510, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
#40 0x00007cc70f15d159 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:77
#41 0x00007cc7104fb14a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2568
#42 0x00005d817f48e0a1 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kwin/kwin-6.3.4/src/main_wayland.cpp:622
Comment 4 Bug Janitor Service 2025-04-08 12:32:19 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/7463
Comment 5 Vlad Zahorodnii 2025-04-09 06:00:35 UTC
Git commit 1780044677bdf814249149fa8dfa8b4cca953d6f by Vlad Zahorodnii.
Committed on 09/04/2025 at 05:45.
Pushed by vladz into branch 'master'.

Avoid synchronizing keyboard modifiers if dnd source is null

This is allowed by the spec.

M  +4    -2    src/input.cpp

https://invent.kde.org/plasma/kwin/-/commit/1780044677bdf814249149fa8dfa8b4cca953d6f
Comment 6 Vlad Zahorodnii 2025-04-09 06:12:22 UTC
Git commit 353292dacb3a1089003d3d70364634a669f0e07d by Vlad Zahorodnii.
Committed on 09/04/2025 at 06:01.
Pushed by vladz into branch 'Plasma/6.3'.

Avoid synchronizing keyboard modifiers if dnd source is null

This is allowed by the spec.


(cherry picked from commit 1780044677bdf814249149fa8dfa8b4cca953d6f)

Co-authored-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>

M  +4    -2    src/input.cpp

https://invent.kde.org/plasma/kwin/-/commit/353292dacb3a1089003d3d70364634a669f0e07d