Filehandle NFS: прежний путь не доказывает прежнюю идентичность файла
Увеличить схему
Фотография конкретного исполнения не приложена.
Клиент NFS обращается к объекту через filehandle. Для клиента это непрозрачное значение, а не путь, который можно произвольно разобрать и восстановить. После обслуживания одинаковое имя файла способно обозначать уже другой объект.
RFC 8881 различает persistent и volatile filehandles. Persistent сохраняется на срок жизни объекта, включая предусмотренную работу после restart. После удаления объекта такой handle становится stale. Volatile может истечь и по другим причинам, что имеет отдельную ошибку FHEXPIRED и требует соответствующего восстановления.
Повторный обход имени помогает найти доступный объект, но не разрешает автоматически считать его прежним открытым файлом. Особенно важен сценарий удаления и создания нового файла с тем же именем. Сравнение текстовых путей не заменяет проверку идентичности и связанного состояния клиента.
В приёмке проверяют restart, переименование и замену объекта на стенде. Сохраняют тип handle и фактическую ошибку, не выдавая её за универсальный отказ сети. Приложение должно иметь предусмотренную реакцию на потерю идентичности. Успешный reconnect или существование прежнего pathname не подтверждают, что открытый ранее объект и его блокировки сохранились.
Основание — Numbered RFC8881 NFSv4.1, RFC7862 NFSv4.2, RFC8276 xattrs and RFC9289 RPC-with-TLS; applicability scoped per task, разделы RFC8881 4.2 Filehandles; 4.4 Recovery from Expiration. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — указанные номерные RFC NFS/RPC. Возможности NFSv4.1, NFSv4.2 и дополнительных расширений разделены; их фактическая поддержка сервером и клиентом не подтверждалась. Монтирование, чтение рабочих файлов, запись и восстановление состояния не выполнялись.
Запросы отправляются на наш e-mail из вашей почтовой программы.