Autocompletar o shell muito lento após a formatação parcial do disco

1

Eu atualizei para o Fedora 26 no dia do lançamento público oficial no início desta semana e, resumindo, acabei estragando a minha instalação, então fiz uma reformatação parcial. Meu layout de disco é o seguinte:

# df -h | grep dev
/dev/sdb3        40G  5.6G   32G  15% /
/dev/sdb2       477M  138M  311M  31% /boot
/dev/sdb1       200M   34M  167M  17% /boot/efi
/dev/sda2       9.8G  940M  8.4G  10% /var
/dev/sda1       493G  441G   27G  95% /home

/dev/sdb é o SSD em que o root está montado e /dev/sda é um HDD normal em que tenho minha partição /home . Eu decidi fazer uma instalação limpa do Fedora 26 ao invés de tentar reparar minha atualização mal feita via dnf , então eu reformatei todas as partições em /dev/sdb , o SSD e reinstalei o Fedora 26, mantendo a partição /home intacta. A instalação correu bem e tudo parece estar funcionando normalmente de novo, exceto por uma coisa: o autocompletar de Zhs agora é lento com diretórios maiores.

Zsh é o meu shell padrão e eu tenho uma infinidade de plugins instalados (Oh My Zsh, FZF, etc.) então eu imaginei que um deles poderia ter falhado durante / após a atualização então eu mudei para o Bash: A mesma coisa, o autocomplete leva uns bons 10 a 30 segundos (dependendo do tamanho do dir) para aparecer. Eu instalei mais alguns shells para solucionar a causa e, para minha surpresa, tcsh e fish funcionam perfeitamente bem. Sob a mesma configuração, esses dois executam perfeitamente bem onde Bash e Zsh ficariam por uns bons +10 segundos.

Eu fiz os diagnósticos usuais com o Bash, cuja configuração é bem bacana comparada à minha instalação do Zsh: strace , set -x , etc., mas não consegui encontrar muito interesse. Também descartei o FZF como o problema, pois a lentidão persistiu após desinstalá-lo ... Ainda assim, meu instinto me diz que isso deve ser algum tipo estranho de problema de hash / cache do mecanismo de conclusão que de alguma forma afeta Zsh e Bash, mas eu não realmente tem alguma evidência para apoiar isso. O preenchimento automático com pastas menores (alguns arquivos, alguns subdiretórios) funciona bem em todos os shells que eu tentei. Outras coisas que eu tentei é executar fsck -A -y para ter certeza de que não tenho partições corrompidas e também reinstalar bash-completion e zsh apenas no caso de alguns metadados ou cache terem sido corrompidos.

Eu acho que o que é realmente intrigante aqui é o fato de que tcsh e fish têm 0 problema de preenchimento automático de qualquer coisa que eu lance neles, mas Bash e Zsh não. Alguém sabe o que está acontecendo aqui? Muito obrigado a quem derramar alguma luz sobre o assunto!

    
por Liam Mayfair 15.07.2017 / 16:03

1 resposta

1

Problema resolvido! Eu estava brincando com perf trace e à medida que linhas e linhas de saída passavam rolando, tive um vislumbre de algumas chamadas estranhas à libnotify do Konsole, meu terminal padrão. Isso pareceu estranho, pois depois da reforma eu não tinha mais nenhum daemon de notificação de desktop instalado (eu uso o i3, que não vem com um, você vê). Isso me deu a ideia de experimentar um emulador de terminal diferente. Então eu tentei urxvt e eis que a questão desapareceu. Eu também tentei com gnome-terminal e nenhum probs em tudo! Poderia ser então que o Konsole estava tentando disparar uma notificação na área de trabalho via dbus / systemd, mas o tempo limite esgotaria porque não havia nenhum daemon libnotify instalado para responder à solicitação? Então eu instalei o dunst , que é o daemon que eu estava usando antes do upgrade e, como eu suspeitava, o autocomplete da lentidão no Konsole acabou!

Portanto, não faço ideia do que o Konsole tenta fazer quando o preenchimento automático é invocado porque nunca vejo quaisquer notificações a aparecer, nem mesmo depois de instalar o daemon, mas, de qualquer forma, o problema parece estar resolvido agora. / p>

Eu acho que vou levar essa para a equipe do KDE e ver quais são seus pensamentos porque, apesar de ter sido um erro minha por não ter um daemon de notificação instalado, os outros terminais que eu tentei resolveram o problema. .

Enfim, obrigado a todos pela ajuda!

    
por 16.07.2017 / 18:57