OSXFUSE - что именно означает "локальный" параметр монтирования?
Я реализовал файловую систему на основе OSXFUSE. Он работает нормально на 10.8, но на Mavericks MS Word открывает существующие документы как пустые (хотя я, по-видимому, возвращаю правильные данные - я вижу содержимое в значке предварительного просмотра. Кроме того, если я копирую файл на настоящий жесткий диск и открой его, он нормально откроется).
Эта проблема исправлена на Mavericks, если я смонтировал свою файловую систему с флагом "local". Однако использование этого флага создает другие проблемы - например, похоже, что это заставляет Finder выполнять более агрессивное кэширование, следовательно, некоторые файлы не видны в Finder (хотя я могу просмотреть их в терминале).
В идеале я хочу иметь возможность монтировать файловую систему без этого локального флага (моя реализация хранит файл в сети, поэтому передача этого флага выглядит неправильно), но проблема с пустыми документами Word меня действительно озадачивает.
2 ответа
Мы смогли отследить проблему - дождаться ее - в Google Chrome. Когда Google Chrome работает во время подключения тома, возникает проблема. Если Google Chrome не работает, Word/Excel/ и т. Д. файлы открываются просто отлично.
Мы связались с Бенджамином (разработчиком OSXFUSE). Пожалуйста, также посмотрите его ответ по этому вопросу в списке рассылки OSXFUSE:
https://groups.google.com/d/msg/osxfuse-group/URlw-n-Qakg/bLw2fHHDe7sJ
До сих пор я не нашел никаких ошибок в osxfuse, которые могли бы объяснить это поведение. Странно, что файлы не повреждены и не пусты. После копирования файлов на другой том они открываются просто отлично. Использование LibreOffice для открытия файла на томе FUSE также работает.
Похоже, что Chrome и Office основаны на Carbon Framework (который устарел со времен Mountain Lion). Я полагаю, что проблема как-то связана с Carbon, поскольку неуглеродные приложения, похоже, не затрагиваются. Каждый раз, когда монтируется том, Chrome запрашивает его возможности и атрибуты (и, возможно, больше). Насколько я могу судить, все эти операции файловой системы возвращаются успешно без каких-либо ошибок. Но с этого момента Office не сможет открыть документы.
На мой взгляд, две наиболее вероятные причины этого:
- osxfuse может нарушить контракт файловой системы VFS на Mavericks. Я изучал это в течение некоторого времени, но я не нашел никаких подсказок, подтверждающих это.
- Там может быть ошибка в рамках Carbon/CarbonCore. Странно, что при использовании стандартных сетевых файловых систем afp или smb проблем не возникает.
Два возможных "исправления" (или, скорее, "обходные пути") для этой проблемы кажутся (на данный момент):
- Используйте "локальную" опцию монтирования (которая может создать другие проблемы и обычно не рекомендуется использовать)
- Не используйте параметр монтирования "volname". Кажется, проблема возникает только при использовании опции монтирования "volname". Если имя настраиваемого тома не задано, проблема, вероятно, не возникает и в Excel/Word/ и т. Д. файлы открываются просто отлично - независимо от того, работал ли Google Chrome во время монтирования.
Я видел то же самое, и местные тоже не вариант. Подобные проблемы с фотошопом.
Некоторые выводы из моей реализации
- Проблема не возникает при первом запуске после перезагрузки.
- Проблема начинает возникать после выхода из программы.
- Я решил эту проблему, вручную отключив (и подождав несколько секунд) перед выходом из моей программы. Если размонтирование прошло успешно, при следующем запуске монтирование снова будет работать нормально.
- Если программа когда-либо завершится или произойдет сбой размонтирования (используемый файл и т. Д.), То доступ к чтению тома будет заблокирован в Word/Photoshop при следующем монтировании.
- Перезагрузка решает проблему.
Это соответствует тому, что вы видите?