У нас есть монтирование NFS на виртуальной машине RHEL6, которая поддерживает наш сервер контроля версий - недавно одно из репозиториев сошло с ума, и вот что я нашел на сервере:
ls -latri repo.git/refs/heads/
total 28
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21 .
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21
5551209 drwxr-xr-x. 3 git git 4096 Jun 1 22:09 ..
Когда я бегу tree
против dir, он кажется бесконечно рекурсивным, например:
repo.git/refs/heads/
├──
│ ├──
│ │ ├──
│ │ │ ├──
│ │ │ │ ├──
│ │ │ │ │ ├──
│ │ │ │ │ │ ├──
│ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
Я попытался удалить репозиторий с помощью его inode ref:
[root@node repo.git/refs]# ls -latri
total 16
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21 heads
[root@node repo.git/refs]# find . -inum 5551210 -exec rm -rf {} \;
rm: cannot remove `./refs/heads': Directory not empty
find: `./refs/heads/': No such file or directory
find: `./refs/heads/': No such file or directory
Я немного растерялся, что мне здесь делать - информация inode о ls -latri
команде, похоже, указывает на то, что в каталоге'главы 'есть 2 каталога, которые являются жесткими ссылками на каталог заголовков?
Любые идеи о том, как убрать это, были бы очень желательны - думаю, я решил проблему приложения, которую это вызывало, но большая проблема с файловой системой должна быть отсортирована.
Спасибо!
Редактировать: бит дополнительного вывода:
нет скрытых персонажей:
[root@node repo.git/refs]# ls -latrib heads/
total 28
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21 .
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21
5551209 drwxr-xr-x. 3 git git 4096 Jun 1 22:09 ..
но вот забавный вывод, когда я на самом деле в головах режиссера:
[root@node repo.git/refs/heads]# ls -latrib
ls: cannot access : No such file or directory
ls: cannot access : No such file or directory
total 12
? -?????????? ? ? ? ? ?
? -?????????? ? ? ? ? ?
5551210 drwxr-xr-x. 2 git git 8192 Jun 1 21:21 .
5551209 drwxr-xr-x. 3 git git 4096 Jun 1 22:09 ..
ls -latri
вывод нечетный, так как счетчик ссылок для inode 5551210 нечетен, если есть эти две дополнительные директории. Не могли бы вы попробоватьls -latrib
? Какой базовый тип файловой системы?ls
выводе подозрительны для меня. Вы запускаете fsck на сервере NFS?Ответы:
Первое: Git не может быть ни причиной, ни решением проблемы, которая проявляется как бессмысленный вывод
ls
. Прекратите использование Git или других инструментов в файловой системе и размонтируйте его, чтобы избежать вреда.Это похоже на сломанную файловую систему или сломанное монтирование. Попробуйте размонтировать и перемонтировать файловую систему на клиенте. Попробуйте полностью перезагрузить клиент. Попробуйте выполнить такое же монтирование на другом клиенте. Каждый раз проверяйте этот
ls
вывод, чтобы увидеть, станет ли он нормальным. Это поможет вам диагностировать проблему на стороне сервера NFS. Еслиls
выходные данные продолжают выглядеть одинаково, исследование и исправление файловой системы (fsck
или чего-либо еще) и / или службы NFS (перезапуск демонов, связанных с NFS; перезагрузка, если nfsd встроен в ядро), необходимо выполнить на стороне сервера.источник