[BUG] High CPU usage on Debian testing (glibc 2.42) - io_uring/libuv issue
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Environment
- Claude Code version: 2.1.27
- OS: Debian testing (forkie), kernel 6.17.13
- glibc: 2.42-10
- Architecture: x86_64
Problem
After upgrading from Debian stable (trixie, glibc 2.40) to Debian testing (forkie, glibc 2.42),
Claude Code consumes 50-100% CPU while idle waiting for user input.
Diagnosis
- Process shows state "S (sleeping)" but with extremely high context switch rate (~180,000
voluntary switches)
- Indicates libuv event loop waking up constantly instead of sleeping properly
- Claude Code binary only depends on glibc (libc, libpthread, libdl, libm)
Workaround
Setting UV_USE_IO_URING=0 resolves the issue:
UV_USE_IO_URING=0 claude
Root cause
Likely a compatibility issue between the bundled Node.js/libuv and glibc 2.42's io_uring or epoll
implementation.
Suggested fix
Rebuild Claude Code binary with glibc 2.42+ or update bundled libuv to handle new glibc behavior.
What Should Happen?
Claude should not consume CPU while waiting for input
Error Messages/Logs
Steps to Reproduce
Start Claude, observe the load
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
unknown
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Xterm
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗