Странное поведение samba и gvfs - ~половина каталогов/файлов случайно оказывается «отсутствующей»

Странное поведение samba и gvfs - ~половина каталогов/файлов случайно оказывается «отсутствующей»

Ситуация:Сервер с Gentoo Linux и Samba на нем. Есть около 15 ПК с Windows, один MacBook Pro и один ноутбук Samsung с Ubuntu. Домена нет, только рабочая группа, и сервер используется только для общих ресурсов Samba. В Ubuntu я использую gvfs для монтирования общих ресурсов Samba.

И проблема:Однажды пропало около половины каталогов, но только при просмотре на этом ноутбуке Ubuntu. Если я подключаюсь по ssh к серверу, я вижу пропавшие файлы/каталоги, а также я вижу пропавшие вещи с компьютеров win или mac.

Временное исправление:Когда я переименовываю некоторые из отсутствующих каталогов, даже если это один символ, отсутствующие каталоги снова появляются… даже без перезагрузки/обновления смонтированного gvfs общего ресурса. Если я немедленно переименовываю обратно в предыдущие каталоги/имена файлов, все ранее отсутствующие каталоги/файлы мгновенно снова исчезают.

Итак, поскольку эта проблема возникла снова примерно через месяц, мне бы пригодился совет, с чего начать проверку.

решение1

Я мог столкнуться с похожей проблемой, но только с отсутствием одного файла. Я подозреваю, что проблема в Linux Samba mount helper.

Можете ли вы провести следующие тесты на вашем клиенте?

cd [каталог-с-отсутствующими-подкаталогами]

ls -al | grep [отсутствует имя] -> ничего не найдено (readdir сломан)
ls -al [отсутствующее имя] -> выводит список элементов (stat working) -- используйте -d, когда [отсутствующее имя] является каталогом

Чтобы узнать, скрывает ли ядро ​​от вас эти файлы:

размонтировать smb-share
начать "tcpdump -p -i [ваша сетевая карта] -s0 -w net.dump host [ваш хост samba]"
смонтировать акцию
запустить тест "ls -al | grep [отсутствует имя]"
остановить tcpdump
Убедитесь, что имя файла есть в tcpdump, но не отображается в dirlisting. Поэтому:
strings --encoding=b net.dump | grep [отсутствует имя]
strings --encoding=l net.dump | grep [отсутствует имя]

Если имя указано хотя бы один раз, это будет означать, что сервер Samba отправляет весь список, но Linux отбрасывает некоторые записи.

Связанный контент