Ошибки · Решение
Linux errno EAGAIN: что означает и как исправить
Ресурс временно недоступен; операция может стать возможной позже.
Короткий ответ
В Linux errno EAGAIN означает «Resource temporarily unavailable». Сначала найдите системный вызов, который вернул код, затем проверяйте условия именно этой операции. Числовое значение errno не следует считать переносимым между архитектурами: ориентируйтесь на символическое имя.
Что означает ошибка
Ресурс временно недоступен; операция может стать возможной позже.
Возможные причины
- Неблокирующий fd сейчас не готов к операции.
- Создание процесса/потока упёрлось во временный лимит ресурсов.
- Очередь или kernel resource временно не может принять запрос.
Что проверить
- Определите системный вызов: смысл EAGAIN зависит от операции.
- Для nonblocking I/O проверьте готовность через poll/epoll/select.
- Для fork/thread creation проверьте process/thread limits и давление на память.
Безопасные шаги
- Используйте ожидание готовности вместо busy-loop для nonblocking I/O.
- При ресурсном лимите уменьшите параллелизм или освободите ресурс.
- Добавляйте bounded backoff только для действительно временных условий.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Если errno EAGAIN воспроизводится после проверки системного вызова и окружения, приложите strace-фрагмент, путь/ресурс и kernel log владельцу соответствующего subsystem.
Похожие ошибки
- /errors/linux-errno-esrch/
- /errors/linux-errno-eintr/
- /errors/linux-errno-eio/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.