Sobre o problema
Você pode ter um problema em que dois ou mais arquivos tenham o mesmo cookie readdir.
Esse problema é mais comum quando se usa um sistema de arquivos NFS (v3 ou v4) em um backend EXT4 e com muitos arquivos no mesmo diretório (mais de 50000). O problema também pode ocorrer ao usar o GlusterFS em vez do NFS.
PS: Esse problema pode ocorrer também com poucos arquivos dentro de um único diretório, mas este último caso é muito improvável.
Nesse caso, você verá Too many levels of symbolic links
erros, mesmo que não tenha nenhum link simbólico em seu diretório. Você pode provar isso verificando que o seguinte comando não retorna nenhuma saída:
find /mnt/storage/aaaaaaa_aaa/bbbb/cccc_ccccc -type l
Para verificar se você está enfrentando esse problema específico, execute o comando acima:
$ ls /mnt/storage/aaaaaaa_aaa/bbbb/cccc_ccccc >/dev/null
ls: reading directory .: Too many levels of symbolic links
Depois, verifique seu syslog ( /var/log/syslog
) para entradas como:
[400000.200000] NFS: directory /mnt/storage/aaaaaaa_aaa/bbbb/cccc_ccccc
contains a readdir loop. Please contact your server vendor.
The file: DDDDDDDDDD has duplicate cookie COOKIE_NUMBER.
O problema está relacionado à função readdir
da API readdir, que usa o cookie readdir para localizar rapidamente um arquivo dentro de um diretório. O servidor NFS usa essa API durante a comunicação com back-ends do EXT4.
Uma explicação completa e excelente sobre o problema de cookie duplicado (na verdade, um problema de colisão de hash) pode ser encontrada em Ampliando o cookie readdir () do ext4 .
Um relatório de bug relacionado pode ser encontrado em cliente NFS reporta um 'loop readdir' com um corrompido nome .
Se você puder reinicializar seu sistema, a boa notícia é que, de acordo com David Hedberg , este problema já está resolvido em versões mais recentes do kernel do Ubuntu (> = 3.2.0-60-generic). Você pode precisar atualizar seu servidor NFS também (a solução só funciona se o servidor NFS e o Kernel forem atualizados).
PS: Se você realmente adora sistemas operacionais, pode verificar os patches do kernel / nfs em link .
Solução
Atualize seu kernel e servidor de kernel NFS e reinicie o sistema:
apt-get -y dist-upgrade
reboot
Se você não puder reinicializar o sistema, também poderá detectar o arquivo com o cookie readdir duplicado (verifique seu syslog) e mova-o para outro diretório (ou renomeie-o para alterar seu cookie / hash).