| Предыдущий | Следующий |
| ECOMM | ECOMM |
ESTALE
ESTALE — специфичный для NFS код errno в Darwin. Он относится к непрозрачному файловому дескриптору, который ранее идентифицировал объект на сервере, но больше не может использоваться. Это отличается от нового поиска по пути, который просто не находит имя: у клиента уже есть дескриптор, а сервер сообщает, что он больше недействителен для объекта или файловой системы, которые представлял.
NFSv4 требует, чтобы сервер возвращал NFS4ERR_STALE, когда постоянный файловый дескриптор указывает на удалённый объект. Дескриптор также может устареть, когда содержащая файловая система больше недоступна, например после размонтирования, извлечения носителя или изменения пространства имён на сервере. Код Darwin определяет этот класс проблем состояния NFS; сам по себе он не означает ошибку локального каталога, ACL или имени DNS.
Полезные данные
- Запишите сервер NFS, экспортируемый путь, точку монтирования, версию NFS и точную отказавшую операцию. Журнал с одной фразой «устаревший файловый дескриптор» теряет сведения, необходимые для различения удалённого объекта и изменения экспорта или файловой системы.
- Проверьте, не был ли объект заменён, экспорт перенастроен, файловая система перемонтирована, перенесена, восстановлена или удалена, пока клиенты ещё хранили дескрипторы.
- Сравните серверный объект и экспорт с конфигурацией монтирования клиента. Повторное создание локального каталога точки монтирования не делает устаревший дескриптор, выданный сервером, допустимым.
- Согласуйте восстановление с приложениями, сохраняющими рабочие каталоги или открытые объекты внутри монтирования. Перемонтирование может восстановить последующие поиски, но не заставит уже недействительный дескриптор указывать на новый объект с тем же путём.
Не объединяйте эти случаи
ENOENTобычно следует за поиском по пути, не обнаружившим запись.ESTALEотносится к действительности ранее полученного файлового дескриптора NFS.- Транспортная ошибка, такая как тайм-аут или отказ в соединении, возникает до того, как сервер сможет вернуть статус NFS для дескриптора.
Ссылки
- Apple XNU: errno.h
- RFC 8881: время жизни файловых дескрипторов NFSv4.1 и NFS4ERR_STALE
- RFC 5531: протокол сообщений ONC RPC, используемый развёртываниями NFS
Нужно найти другой код? Найти другой код состояния или ошибки.