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

 
Также может означать:
КонстантаТипОС
EADDRINUSEerrnoLinux
EPROTOTYPEerrnoSolaris
OBJECT1_INITIALIZATION_FAILEDКод BSODWindows
Предыдущий Следующий
EADDRINUSE EPROTOTYPE

ENOSR

Что означает ENOSR в Darwin

В Darwin ENOSR означает, что STREAMS-совместимый путь не смог выделить требуемый ресурс потока — например, очередь или блок сообщения. Это более узкий результат, чем общий дефицит памяти, поэтому поиск утечки только в heap процесса может увести от причины.

Что проверить

  • Сохраните конкретный API или ioctl, descriptor, размер операции и errno сразу после неуспешного вызова.
  • Посчитайте активные stream endpoints/queues и проверьте, освобождаются ли они после закрытия объектов или завершения сессии.
  • Если код пришёл через переносимую библиотеку, отдельно зафиксируйте исходный Darwin errno и версию библиотеки: собственный лимит wrapper не следует выдавать за системный ENOSR.

Как действовать

Устраните утечку или освободите ресурс той STREAMS-совместимой подсистемы, которая достигла лимита, затем повторите ту же операцию на новом или корректно восстановленном объекте. Непрерывный retry без освобождения ресурса не является восстановлением.

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


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