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

 
Также может означать:
КонстантаТипОС
ERROR_WRITE_PROTECTОшибка WindowsWindows
ippStsDomainСтатус Intel IPPЛюбая
ENODEVerrnoЛюбая
EMPTY_THREAD_REAPER_LISTКод BSODWindows
Предыдущий Следующий
KERN_INVALID_VALUE KERN_INVALID_CAPABILITY

KERN_UREFS_OVERFLOW

KERN_UREFS_OVERFLOW сообщает, что операция превысила бы допустимое количество пользовательских ссылок на право порта Mach. Право порта является возможностью в пространстве имён задачи, и Mach отслеживает число пользовательских ссылок, которыми задача владеет для этого права.

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

Полезные шаги исследования

  • Проверьте каждый путь создания, копирования, вставки или получения проблемного права.
  • Сопоставьте эти операции с требуемым API освобождением или уничтожением.
  • Проверьте пути ошибок и отмены: они часто пропускают освобождение, выполняемое при нормальном завершении.
  • Используйте журналирование владения вместо повторов операции, поскольку новое получение только усугубит переполнение.

Исправление состоит в восстановлении сбалансированного владения правами. Отношение к ошибке как к временному транспортному сбою может скрыть постоянно растущую утечку ресурсов IPC.

Ссылки


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