Kami memiliki NFS mount pada RHEL6 VM yang mendukung server kontrol versi kami - baru-baru ini, salah satu repositori menjadi sedikit gila dan ini yang saya temukan di server:
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 ..
Ketika saya berlari tree
melawan dir, tampaknya bersifat rekursif tanpa batas - misalnya:
repo.git/refs/heads/
├──
│ ├──
│ │ ├──
│ │ │ ├──
│ │ │ │ ├──
│ │ │ │ │ ├──
│ │ │ │ │ │ ├──
│ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├──
Saya telah berusaha menghapus repositori melalui inode refnya:
[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
Saya sedikit bingung apa yang harus dilakukan di sini - info inode pada ls -latri
perintah tampaknya menunjukkan bahwa ada 2 direktori di direktori 'kepala' yang merupakan hardlink ke direktori kepala?
Setiap ide tentang cara membersihkan ini akan sangat disambut baik - saya pikir saya telah memecahkan masalah aplikasi yang disebabkannya tetapi masalah yang lebih besar dengan sistem file perlu disortir.
Terima kasih!
Edit: sedikit output tambahan:
tidak ada karakter tersembunyi:
[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 ..
tapi di sini ada beberapa output yang menyenangkan ketika saya benar-benar di dir head:
[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
Output Anda aneh karena jumlah tautan untuk inode 5551210 aneh jika ada dua direktori tambahan. Bisakah kamu mencobals -latrib
? Apa tipe sistem file yang mendasarinya?ls
keluaran itu mencurigakan bagi saya. Sudahkah Anda menjalankan fsck di server NFS?Jawaban:
Pertama: Git tidak bisa menjadi penyebab atau solusi dari masalah yang bermanifestasi sebagai keluaran yang tidak masuk akal dari
ls
. Hentikan penggunaan Git atau alat lain di sistem file dan lepaskan itu untuk menghindari bahaya.Ini terlihat seperti sistem file yang rusak atau gunung yang rusak. Coba unmount dan remount sistem file pada klien. Coba reboot sepenuhnya klien. Coba lakukan pemasangan yang sama pada klien lain. Setiap kali, periksa
ls
output itu untuk melihat apakah itu menjadi normal. Ini akan membantu Anda mendiagnosis apakah masalahnya ada di sisi server NFS. Jikals
output terus terlihat sama, investigasi dan perbaikan filesystem (fsck
atau apa pun) dan / atau layanan NFS (restart daemoon terkait NFS; reboot jika nfsd di-kernel) perlu dilakukan di sisi server.sumber