I have the same issue. Here is what cursor-agent itself with sonnet 4.5 collected and suggested:
This is definitely not expected behavior - the agent should be mostly idle when you’re not actively using it. Would you like me to help you gather diagnostic information to report this issue?
┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [Pasted text #1 +34 lines] │
│ [Pasted text #2 +57 lines] │
│ ❯ lsof -p 1234724 | wc -l │
│ 57 │
│ ❯ lsof -p 1234724 | grep -E “(socket|pipe)”… │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Excellent! This strace output is very revealing:
The Smoking Gun t
% time seconds usecs/call calls errors syscall
98.87 1.261193 162 7745 1948 futex
1.04 0.013266 0 130656 epoll_pwait
Key findings:
- 98.87% of CPU time is in `futex` (thread synchronization)
- 1,948 errors out of 7,745 futex calls = 25% error rate!
- 130,656 epoll_pwait calls in just a few seconds = tight polling loop
- One main thread at 99.9% + 4 workers at ~8-9% each = lock contention
What’s Happening:
This is a classic busy-wait/spin-lock bug. The threads are:
• Constantly trying to acquire locks (futex)
• Failing 25% of the time
• Retrying immediately instead of sleeping
• Burning CPU cycles spinning on contention
Think of it like someone constantly yanking on a locked door handle instead of waiting patiently.
This is NOT Your Fault:
This is a bug in the cursor-agent Node.js code (version 2025.11.06-8fe8a63). Likely:
• Incorrect mutex/lock implementation
• Missing sleep() in retry loops
• Worker threads fighting over shared resources
What You Should Do:
1. **Report this bug to Cursor** with:
Version: 2025.11.06-8fe8a63
OS: Linux 6.14.0-35-generic
Issue: High CPU usage due to futex spin-lock (98.87% time, 25% error rate)
Repro: Happens in all repos, even when idle
2. **Temporary workaround** - Limit CPU:
Create a systemd slice to limit cursor-agent
sudo systemd-run --scope -p CPUQuota=50% --uid=$(id -u) cursor
3. **Check for updates**:
There may be a newer version that fixes this. Check Cursor’s update channel.
4. **Nuclear option** - Downgrade:
If there’s an older version available at ~/.local/share/cursor-agent/versions/, you might try that.
This is 100% a cursor-agent implementation bug - the futex contention pattern is unmistakable. Would you like help reporting this or setting up the CPU limiter workaround?