Что означает код errno 59 (ETOOMANYREFS) в macOS?

 
Также может означать:
КонстантаТипОС
ERROR_UNEXP_NET_ERRОшибка WindowsWindows
EBFONTerrnoLinux
ENOTRECOVERABLEerrnoSolaris
SYSTEM_SERVICE_EXCEPTIONКод BSODWindows
Предыдущий Следующий
EBFONT ENOTRECOVERABLE

ETOOMANYREFS

ETOOMANYREFS в Darwin

В Darwin значение 59 (ETOOMANYREFS) означает: слишком много ссылок для операции сокета Darwin в стиле splice. Сетевой путь не смог создать ещё одну ссылку, требуемую операцией.

Что зафиксировать

СведенияНа какой вопрос отвечают
Семейство и тип сокета, количество ссылок или прав в очереди, ограничения процесса, другая сторона и трассировка жизненного цикла.Связывают ошибку с конкретным действующим объектом API, а не только с переведённым сообщением.
Darwin errno и версия SDK/XNU.Показывают, возникла ли ошибка в ABI вызывающей стороны, оболочке или поставщике.
Результат первого системного вызова или ioctl, а также процесс, поток и экземпляр объекта.Сохраняет errno до его перезаписи.
Контрольный объект той же сборки macOS.Даёт контрольное сравнение на той же платформе.

Контрольная проверка

  1. Закройте один контролируемый дубликат или ссылку и повторите операцию один раз. После контроля повторите исходную операцию, чтобы результат оставался относящимся к слишком большому числу ссылок.
  2. Немедленно сохраните errno и сравните связанное возвращаемое значение. При проверке числа ссылок сокета не меняйте двоичный файл, ABI заголовков и поставщика.
  3. Повторите тест с одним контролируемым объектом, сохранив идентификатор и песочницу без изменений. Зафиксируйте, достигает ли проверка числа ссылок сокета той же границы системного вызова или среды выполнения, что и исходная ошибка.

Исправление

Освободите утёкшие ссылки сокетов и ограничьте параллелизм; не считайте ошибку общим пределом открытых файлов без подтверждающих данных.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.