| Предыдущий | Следующий |
| ECHILD | EDEADLK |
EAGAIN
Что означает EAGAIN в Linux
EAGAIN означает «Ресурс временно недоступен». Для условия «Ресурс временно недоступен» код EAGAIN нужно связывать с первым возвратившим его вызовом и контекстом: лимит процесса или системы, память, дескрипторы, блокировки и временное состояние.
После отказа, соответствующего «Ресурс временно недоступен», сохраните errno немедленно: любой последующий системный или библиотечный вызов может заменить значение. Для EAGAIN исходная английская страница также выделяет EWOULDBLOCK, O_NONBLOCK, MSG_DONTWAIT и CPU; эти данные полезно записать вместе с return value, потоком и временем события.
Диагностика
- При ошибке «Ресурс временно недоступен» (Linux,
EAGAIN) снимите текущие rlimit, количество дескрипторов, память, блокировки и глубину очередей. - При ошибке «Ресурс временно недоступен» (Linux,
EAGAIN) отделите временную нехватку от утечки; retry с backoff допустим только для документированно временного условия. - При ошибке «Ресурс временно недоступен» (Linux,
EAGAIN) сохраните метрики до cleanup или повтора, иначе первичная причина исчезнет вместе с симптомом. - При ошибке «Ресурс временно недоступен» (Linux,
EAGAIN) проверьте освобождение ресурса на всех error paths и установите конечный предел повторов.
На платформе Linux исправление EAGAIN считается подтверждённым, когда исходная операция даёт ожидаемый результат, а отдельный отрицательный тест по-прежнему воспроизводит именно условие «Ресурс временно недоступен» без утечки ресурсов и потери первичной диагностики.
Ссылки для EAGAIN
Нужно найти другой код? Найти другой код состояния или ошибки.