Что означает код возврата ядра macOS 6 (KERN_RESOURCE_SHORTAGE)?

 
Также может означать:
КонстантаТипОС
ERROR_INVALID_HANDLEОшибка WindowsWindows
ippStsDivByZeroСтатус Intel IPPЛюбая
ENXIOerrnoЛюбая
INVALID_PROCESS_DETACH_ATTEMPTКод BSODWindows
Предыдущий Следующий
KERN_FAILURE KERN_NOT_RECEIVER

KERN_RESOURCE_SHORTAGE

KERN_RESOURCE_SHORTAGE означает, что Mach не смогла выделить системный ресурс, необходимый для выполнения запроса. XNU прямо указывает, что это состояние может быть непостоянным. Поэтому оно отличается от неверно сформированного запроса и от KERN_NO_SPACE, который относится к неподходящему диапазону виртуальных адресов.

Сам код не определяет, какого именно ресурса не хватило. В зависимости от операции ограничивающим фактором могут быть метаданные управления памятью, порт или другой ресурс IPC, выделение памяти ядром либо ресурс иной подсистемы. Сведение каждого случая к обычному исчерпанию кучи приложения теряет этот контекст.

Практические действия

  • Запишите точный вызов Mach, запрошенный размер, целевую задачу и предшествующие события жизненного цикла ресурсов.
  • Перед повторной попыткой освободите больше не нужные ресурсы.
  • Используйте ограниченное число повторов только тогда, когда вызывающая сторона способна безопасно перенести временный отказ; неограниченные немедленные повторы могут усилить нагрузку.
  • Сопоставьте отказ с состоянием карты VM. Если проблема заключается в самом запрошенном диапазоне адресов, более конкретным результатом будет KERN_NO_SPACE.

Модель Mach разделяет адресные пространства задач, объекты памяти, порты и ресурсы IPC. Код возврата сообщает, что выделение завершилось ошибкой на уровне Mach; контекст для поиска ограниченного ресурса предоставляет неудавшийся API.

Ссылки


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