[BUG] High CPU usage on Debian testing (glibc 2.42) - io_uring/libuv issue

Resolved 💬 3 comments Opened Jan 31, 2026 by tigrino Closed Feb 4, 2026

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_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗