Error Codes Wiki

Linux errno 11 (EAGAIN) — Resource Temporarily Unavailable

Informationalerrno

About Linux errno 11 (EAGAIN)

Linux errno 11 (EAGAIN) means a resource is temporarily unavailable, typically with non-blocking I/O or process limits. This guide covers everything you need to know about this topic, including common causes, step-by-step solutions, and answers to frequently asked questions.

Here are the key things to understand: EAGAIN — try again later, resource temporarily busy. Same as EWOULDBLOCK on most Linux systems. Common with non-blocking sockets and pipes. Can also indicate process or thread limit reached. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.

The most common reasons this occurs include: Non-blocking I/O operation with no data available. System process limit (ulimit -u) reached. Insufficient memory for fork/clone. Socket buffer full on non-blocking socket. Identifying the root cause is the first step toward finding the right solution.

To resolve this, follow these recommended steps: For non-blocking I/O: implement retry with poll/epoll. Check process limits: ulimit -a. Increase limits in /etc/security/limits.conf. Monitor system resources: top, free -h. If these steps do not resolve the issue, consider consulting additional resources or a qualified professional.

This article is part of our Linux Error Codes collection on Error Codes Wiki. We provide comprehensive, up-to-date information to help you find solutions quickly.

Quick Answer

Should I just retry the operation?

Yes — EAGAIN means "try again later". Use poll() or select() to wait efficiently.

Overview

Linux errno 11 (EAGAIN) means a resource is temporarily unavailable, typically with non-blocking I/O or process limits.

Key Details

  • EAGAIN — try again later, resource temporarily busy
  • Same as EWOULDBLOCK on most Linux systems
  • Common with non-blocking sockets and pipes
  • Can also indicate process or thread limit reached

Common Causes

  • Non-blocking I/O operation with no data available
  • System process limit (ulimit -u) reached
  • Insufficient memory for fork/clone
  • Socket buffer full on non-blocking socket

Steps

  1. 1For non-blocking I/O: implement retry with poll/epoll
  2. 2Check process limits: ulimit -a
  3. 3Increase limits in /etc/security/limits.conf
  4. 4Monitor system resources: top, free -h

Tags

linuxerrnoerrno 11 eagaintroubleshootingfix

More in Errno

Frequently Asked Questions

Yes — EAGAIN means "try again later". Use poll() or select() to wait efficiently.