Что означает код errno 79 (ELIBACC)?

 
Также может означать:
КонстантаТипОС
EFTYPEerrnomacOS
EOVERFLOWerrnoSolaris
NDIS_INTERNAL_ERRORКод BSODWindows
Предыдущий Следующий
ENAMETOOLONG EFTYPE

ELIBACC

Что означает ELIBACC в Linux

ELIBACC: Нет доступа к необходимой разделяемой библиотеке. Loader не смог получить доступ к требуемой shared library; различайте отсутствие файла, permissions, mount policy и недоступность зависимого пути.

В Linux учитывайте реальный тип filesystem и объект, к которому пришёл syscall: VFS, локальная FS и сетевой mount могут формировать одинаковое errno по разным причинам. Полезные технические маркеры из контекста этой ошибки: ELIBACC, execve(), ELIBBAD, ELIBEXEC, ENOENT, EACCES. Записывайте их фактические значения или режимы, а не только символическое имя errno.

Диагностика

  • Для удалённого filesystem сохраните mount identity и server-side событие вместе с локальным errno.
  • Не выполняйте destructive cleanup до сохранения inode/file identity и исходной ошибки: после удаления воспроизвести состояние значительно труднее.
  • Запишите полный путь после формирования, тип объекта, права доступа и файловую систему; строка пути сама по себе часто недостаточна.
  • Для Linux сопоставьте событие с process/thread, descriptor и точным syscall; после retry проверьте, не изменился ли объект под тем же числовым дескриптором.

Практическая проверка

Запустите проверку каждой зависимости loader-а из того же user, mount namespace и working environment, что и падающий процесс. Отдельно фиксируйте найденный pathname библиотеки и результат доступа к нему. Если библиотека существует, сравните execute/search permissions родительских каталогов и security policy; если не существует — исследуйте search path и deployment, а не формат бинарника.

Ссылки


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