Reconstruindo o Discourse após adição de repositório GitHub inválido

Estou enfrentando um problema com meu site Discourse após adicionar acidentalmente um repositório GitHub inválido ao arquivo app.yml. Quando executei ./launcher rebuild app, o processo falhou e agora o site não pode ser reconstruído. Infelizmente, tenho backups, mas eles falham durante o processo de restauração. Abaixo estão os detalhes do problema, incluindo o log de erro completo.

Passos Realizados:

  1. Tentei adicionar o DeepSeek LLM à minha instalação do Discourse seguindo as orientações deste post.
  2. Adicionei a URL do repositório https://github.com/deepseek-ai/DeepSeek-LLM ao arquivo app.yml.
  3. Executei ./launcher rebuild app, que falhou e tornou o site inoperante.

Log de Erro Completo:

plaintext

CopyEdit

(Veja o rastreamento completo executando a tarefa com --trace)
I, [2025-01-21T02:32:16.599723 #1]  INFO -- : gem install multipart-post -v 2.4.0 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed multipart-post-2.4.0
1 gem installed
gem install faraday-multipart -v 1.0.4 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed faraday-multipart-1.0.4
1 gem installed
gem install event_stream_parser -v 1.0.0 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed event_stream_parser-1.0.0
1 gem installed
gem install ruby-openai -v 7.0.0 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed ruby-openai-7.0.0
1 gem installed
gem install tokenizers -v 0.4.4 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed tokenizers-0.4.4-x86_64-linux
1 gem installed
gem install tiktoken_ruby -v 0.0.9 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed tiktoken_ruby-0.0.9-x86_64-linux
1 gem installed
gem install ed25519 -v 1.2.4 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Building native extensions. This could take a while...
Successfully installed ed25519-1.2.4
1 gem installed
... (mais logs de instalação de gem) ...
I, [2025-01-21T02:32:16.600035 #1]  INFO -- : Terminating async processes
I, [2025-01-21T02:32:16.600051 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 39
I, [2025-01-21T02:32:16.600103 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 107
2025-01-21 02:32:16.600 UTC [39] LOG:  received fast shutdown request
107:signal-handler (1737426736) Received SIGTERM scheduling shutdown...
2025-01-21 02:32:16.602 UTC [39] LOG:  aborting any active transactions
2025-01-21 02:32:16.604 UTC [39] LOG:  background worker "logical replication launcher" (PID 54) exited with exit code 1
2025-01-21 02:32:16.605 UTC [49] LOG:  shutting down
107:M 21 Jan 2025 02:32:16.612 # User requested shutdown...
107:M 21 Jan 2025 02:32:16.612 * Saving the final RDB snapshot before exiting.
2025-01-21 02:32:16.634 UTC [39] LOG:  database system is shut down
107:M 21 Jan 2025 02:32:16.667 * DB saved on disk
107:M 21 Jan 2025 02:32:16.667 # Redis is now ready to exit, bye bye...

> FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 837 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

Desafios:

  • Não consigo restaurar o site a partir de um backup.
  • A reconstrução falha consistentemente, deixando o site inoperante.

Pedido de Ajuda:

  1. Como posso abordar esses problemas? A execução do rebuild app deve ter criado um plugin ou algo semelhante com erro.
  2. Existem etapas manuais de recuperação?
  3. Alguma sugestão para reconstruir o site com segurança a partir deste estado?

Assinei uma instância hospedada do Discourse e fiz o upload de um backup, mas a opção de restauração não aparece, mesmo que o arquivo tenha sido carregado normalmente.

Agradeço imensamente qualquer conselho ou orientação sobre como proceder. Por favor, me avisem se mais detalhes forem necessários!

Se você remover o plugin, as reconstruções ainda falham?

Além disso, esse repositório não é um plugin. É o código-fonte do Deepseek. Acho que o que Sam estava se referindo era para transformá-lo em um plugin?

1 curtida

E a etapa de recuperação manual é ./launcher start app — se o último contêiner ativo não for destruído. E remover esse repositório de app.yml e reconstruir depois disso.

1 curtida

Essa é a falha? Você precisa incluir a parte acima que mostra qual migração está falhando.

Minha suposição é que você ainda tem algum plugin quebrado ou um erro de formatação em seu arquivo yml, mas é impossível dizer com as informações que você forneceu.

Para restaurar um backup, você precisa enviar um e-mail para team@discourse.org e pedir para eles restaurarem.

1 curtida

Remova isso o mais rápido possível.

GitHub - deepseek-ai/DeepSeek-LLM: DeepSeek LLM: Let there be answers não é um plugin do Discourse, portanto, nunca deve aparecer em um arquivo app.yml.

6 curtidas

Agradeço a todos e pelo feedback. Não consigo explicar como isso foi resolvido, mas parece que está funcionando. A primeira coisa que fiz quando percebi meu erro ao colocar o repositório GitHub não plugin em app.yml e travar o discourse foi remover essa linha e tentar reconstruir sem sucesso. Reiniciei o servidor várias vezes sem sucesso. Reiniciar retornaria o site à operação, mas reconstruir do admin ou do ssh travava novamente. Então, de repente, BAM, ele reconstruiu do SSH e depois atualizou os plugins e reconstruiu do admin. Agora atualizei o Ubuntu e pareço estar bem. Parece resolvido, mas ainda é um mistério. :partying_face:

3 curtidas