-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Hyprland's XWM module gets stuck in an infinite loop spamming [ERR] [xwm] No transfer with property data found, causing the
main Hyprland thread to consume 100% of one CPU core indefinitely.
The issue persists even after killing XWayland (kill -9 ), indicating the bug is in Hyprland's internal XWM state machine
rather than in XWayland itself. Only a full Hyprland restart resolves it.
How to reproduce
Unknown exact trigger. Occurred after normal usage with clipboard operations involving X11/XWayland applications. Using
cliphist + wl-paste for clipboard management.
Crash reports, logs, images, videos
Rolling log showing the spam:
[ERR] [xwm] No transfer with property data found
[ERR] [xwm] No transfer with property data found
[ERR] [xwm] No transfer with property data found
... (repeats indefinitely)
strace showing tight syscall loop (5 second sample):
% time seconds usecs/call calls errors syscall
24.24 0.119407 1 88039 85477 sendmsg
23.01 0.113379 1 88074 epoll_ctl
22.18 0.109266 1 85477 epoll_wait
15.92 0.078414 4 18510 ioctl
4.38 0.021569 1 17321 close
...
100.00 0.492654 1 333063 86826 total
Note: 85,477 sendmsg errors in 5 seconds - 97% failure rate, indicating a stuck retry loop.
Key observations:
- Main Hyprland thread (not a child thread) is at 100% CPU
- Killing XWayland does NOT stop the loop
- Clearing Wayland clipboard (wl-copy --clear) does NOT help
- No XWayland clients were running at the time of investigation
System Info
Hyprland 0.52.1 built from branch v0.52.1 at commit 967c3c7
Tag: v0.52.1
System: CachyOS Linux
Kernel: 6.17.9-2-cachyos
GPU: 3x NVIDIA RTX 3090
Driver: NVIDIA 580.105.08 (Open Kernel Module)
Monitors: 4x 2560x1440 (60Hz, 144Hz, 240Hz, 240Hz)
Libraries:
- Hyprgraphics: 0.4.0
- Hyprutils: 0.10.4
- Hyprcursor: 0.1.13
- Hyprlang: 0.6.6
- Aquamarine: 0.10.0
Suggested fix area
The XWM clipboard transfer handling in src/xwayland/ likely needs:
- A retry limit or backoff for failed transfers
- Proper cleanup when the transfer source is no longer valid
- State reset when XWayland is killed/restarted