Что означает код errno 31 (EMLINK)?

 
Также может означать:
КонстантаТипОС
ERROR_GEN_FAILUREОшибка WindowsWindows
KERN_DEFAULT_SETКод возврата ядра macOSmacOS
ippStsSmallerCodebookСтатус Intel IPPЛюбая
SHARED_RESOURCE_CONV_ERRORКод BSODWindows
Предыдущий Следующий
EROFS EPIPE

EMLINK

Речь о жёстких, а не символических ссылках

EMLINK относится к числу жёстких ссылок — записей каталогов, непосредственно указывающих на один inode. Код не означает, что цепочка символических ссылок слишком длинна: для этого используется ELOOP. Объектом может быть файл с чрезмерным числом сохранённых имён либо каталог, чей счётчик ссылок достиг ограничения файловой системы при создании или перемещении подкаталогов.

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

Как обработать

  • Проверьте число ссылок у целевого inode и найдите каталоги или инструменты, создающие дополнительные имена.
  • Не заменяйте жёсткие ссылки символическими без анализа требований к атомарности, правам и переносимости.
  • Удаляйте устаревшие ссылки только после подтверждения, что нужные данные сохраняются под другим именем.
  • Для контентно-адресуемого хранения проектируйте срок хранения и сборку мусора с учётом предела числа ссылок.

Ссылки


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