Não consigo instalar novos plugins: a estrutura precisa de limpeza

Olá, quando adiciono o plugin de reações ou o plugin de tradução no containers/app.yml e tento reconstruir o aplicativo, obtenho a seguinte saída. Estranhamente, há também uma frase em holandês na mensagem de erro.

Garantindo que o launcher esteja atualizado
Buscando origem
aviso: não foi possível acessar '.git/info/grafts': Structure moet worden opgeschoond
aviso: não foi possível acessar '.git/info/grafts': Structure moet worden opgeschoond
aviso: não foi possível acessar '.git/info/grafts': Structure moet worden opgeschoond
Atualizando o Launcher...
aviso: não foi possível acessar '.git/info/grafts': Structure moet worden opgeschoond
aviso: não foi possível acessar '.git/info/grafts': Structure moet worden opgeschoond
aviso: não foi possível acessar '.git/info/grafts': Structure moet worden opgeschoond
Atualizando 333b879..f982cc4
aviso: não foi possível acessar '.git/info/attributes': Structure moet worden opgeschoond
aviso: não foi possível acessar '.git/info/exclude': Structure moet worden opgeschoond
erro: Suas alterações locais nos seguintes arquivos seriam sobrescritas pela mesclagem:
        image/base/Dockerfile
        image/base/install-gifsicle
        image/base/install-imagemagick
        image/base/install-nginx
        image/base/install-pngcrush
        image/base/install-pngquant
        image/base/install-redis
Por favor, confirme suas alterações ou guarde-as antes de mesclar.
Abortando
falha ao atualizar
Launcher atualizado, reiniciando...

E isso se repete indefinidamente até que eu pressione CTRL+C.

Provavelmente estou fazendo algo errado. Tentei atualizar tudo para a versão mais recente, mas sem sucesso.

Há mais alguma informação que eu possa fornecer? Existe algum procedimento de limpeza que eu possa tentar e, em seguida, tentar instalar os plugins novamente?

Você adicionou as duas linhas para clonar esses plugins e executou

 ./launcher rebuild app

?

Olá, segui este procedimento.

A parte dos plugins do containers/app.yml:

## Plugins vão aqui
## veja https://meta.discourse.org/t/19157 para detalhes
hooks:
  after_code:
- exec:
    cd: $home/plugins
    cmd:
      - git clone https://github.com/discourse/docker_manager.git
      - git clone https://github.com/paviliondev/discourse-locations.git
      - git clone https://github.com/discourse/discourse-sitemap.git
#          - git clone https://github.com/discourse/discourse-reactions.git
      - git clone https://github.com/discourse/discourse-translator.git

Tentei novamente agora mesmo, o mesmo ciclo de saída se repetindo uma e outra vez.

E aí, Jay, tem alguma ideia sobre isso? Tem algo que eu possa fazer para fornecer mais informações?

Desculpe. Nada chamou minha atenção. Talvez você precise de dois espaços antes de - exec (ou talvez tenha colado de forma estranha?). Não é um erro que eu reconheça ou esperaria que causasse esse problema. . .. Sim. Talvez você precise de 4 espaços antes de - exec e mais 2 antes do restante. Você pode (ou renomear) seu app.yml e executar novamente discourse-setup, depois copiar/colar cuidadosamente a linha discourse_docker e editá-la para os plugins adicionais.

Se quiser investir dinheiro para resolver esse problema, veja Redirecting… ou Redirecting… e posso dar uma olhada.

Tentei sua sugestão e acho que obtive algo ao executar o discourse-setup. Recebi o seguinte:

AVISO: O Discourse requer pelo menos 2GB de swap ao ser executado com 2GB de RAM
ou menos. Este sistema parece não ter espaço de swap suficiente.

Sem espaço de swap suficiente, seu site pode não funcionar corretamente, e futuras
atualizações do Discourse podem não ser concluídas com sucesso.

Pressione Ctrl+C para sair ou aguarde 5 segundos para que um arquivo de swap de 2GB seja criado.
install: não foi possível acessar '/swapfile': Estrutura precisa ser limpa
fallocate: não foi possível abrir /swapfile: Estrutura precisa ser limpa
mkswap: não foi possível abrir /swapfile: Estrutura precisa ser limpa
swapon: não foi possível abrir /swapfile: Estrutura precisa ser limpa
/swapfile       swap    swap    auto      0       0
vm.swappiness = 10
Falha ao criar swap: você é root? Está executando em hardware real ou em um servidor totalmente virtualizado?

O comando free indica que não há swap disponível no meu VPS. Coisa estranha, pois nunca tive isso antes e o site funciona bem de qualquer forma. Também instalei plugins com sucesso.

Devo obter swap ou há alguma limpeza que eu possa fazer?

Executei ./launcher cleanup. Não ajudou.

O que me intriga é esta linha de erro em holandês:

Structure moet worden opgeschoond

Isso ocorre ao executar o discourse-setup e ao tentar fazer o swap. E acontece ao tentar acessar .git/info/grafts.

Então, você excluiu/renomeou seu app.yml e executou novamente a configuração do Discourse e ainda recebeu o erro? Isso é estranho.

Eu não esperaria que ./launcher cleanup ajudasse. Isso apenas (tenta) limpar coisas do Docker (principalmente).

Falha ao criar swap: você é root? Está executando em hardware real ou em um servidor totalmente virtualizado?

Ei. Aqui vai uma pergunta: você é root? Está em um servidor totalmente virtualizado?

Você instalou há muito, muito tempo?

Mas estou quase sem ideias sobre este caso.

OK, deve ser algo relacionado ao sistema de arquivos. Dê uma olhada nisso: eu nem consigo entrar no diretório ‘info’ com o cd:

root@skrzat:/var/discourse/.git# ls -al
ls: não foi possível acessar 'info': Estrutura deve ser limpa
total 32
drwxr-xr-x   8 root root  198 mar 26 21:54 .
drwxr-xr-x  11 root root  246 jan  7 22:18 ..
drwxr-xr-x   2 root root    6 nov 13 11:43 branches
-rw-r--r--   1 root root  274 nov 13 11:43 config
-rw-r--r--   1 root root   73 nov 13 11:43 description
-rw-r--r--   1 root root    0 mar 26 21:53 FETCH_HEAD
-rw-r--r--   1 root root   23 nov 13 11:43 HEAD
drwxr-xr-x   2 root root  301 nov 13 11:43 hooks
-rw-r--r--   1 root root 7395 jan  7 22:18 index
d?????????   ? ?    ?       ?            ? info
drwxr-xr-x   3 root root   30 nov 13 11:43 logs
drwxr-xr-x 155 root root 4096 mar 24 15:13 objects
-rw-r--r--   1 root root   41 mar 26 21:52 ORIG_HEAD
-rw-r--r--   1 root root 1572 nov 13 11:43 packed-refs

drwxr-xr-x 5 root root 46 nov 13 11:43 refs

A coisa mais estranha são todos aqueles pontos de interrogação.

Vou fazer minha própria pesquisa; provavelmente não tem nada a ver com o Discourse.

Olá a todos, apenas para relatar como resolvi isso.

De fato, foi o sistema de arquivos XFS que ficou seriamente corrompido. Repará-lo exigia a instalação do XFSprogs, o que não consegui fazer porque usar o apt-get para instalar gerava os mesmos erros.

Cheguei à conclusão de que instalar plugins e recriar o aplicativo é uma tarefa que consome muita memória. No entanto, tenho um pequeno fórum com hardware por trás de 2 GB de RAM e 15 GB de espaço em disco. Não havia swap ativado, e minha hipótese é que encontrei problemas de memória porque precisei reiniciar o sistema algumas vezes enquanto tentava instalar os plugins. Provavelmente não foi bom para o sistema de arquivos, e o XFS implementou salvaguardas, entre outras coisas, na pasta GIT.

Então, fiz um backup (felizmente no S3, então não houve problemas com isso), criei um backup do arquivo app.yml, recriei o VPS e configurei o SWAP com este guia (VPS Debian). Em menos de uma hora, tudo estava funcionando novamente. Pouco :sweat_smile:

E o plugin de reações que eu queria, funcionando perfeitamente!