Falha ao atualizar Discourse

Tentei atualizar o Discourse para a versão mais recente hoje. Falhou. Aqui está o log:

********************************************************
*** Por favor, seja paciente, os próximos passos podem demorar ***
********************************************************
Ciclando Unicorn, para liberar memória
Reiniciando unicorn pid: 548
Aguardando o Unicorn recarregar.
Aguardando o Unicorn recarregar..
Aguardando o Unicorn recarregar...
Aguardando o Unicorn recarregar....
Aguardando o Unicorn recarregar.....
Aguardando o Unicorn recarregar......
Aguardando o Unicorn recarregar.......
Aguardando o Unicorn recarregar........
Aguardando o Unicorn recarregar.........
Parando 3 worker(s) do Unicorn, para liberar memória
Parando a fila de trabalhos para recuperar memória, pid do mestre é 2943724
$ cd /var/www/discourse & git fetch --tags --prune-tags --prune --force
$ cd /var/www/discourse & git reset --hard HEAD@{upstream}
HEAD agora está em be4f1e335 PERF: Cache `hostname` em `DiscourseLogstashLogger` (#27442)
$ bundle install --retry 3 --jobs 4
Bundle completo! 141 dependências do Gemfile, 174 gems agora instaladas.
Gems nos grupos 'development' e 'test' não foram instaladas.
Gems empacotadas são instaladas em './vendor/bundle'
1 gem instalada da qual você depende diretamente está procurando por financiamento.
  Execute `bundle fund` para detalhes
$ yarn install
yarn install v1.22.19
[1/5] Validando package.json...
[2/5] Resolvendo pacotes...
aviso O campo de resolução "unset-value@2.0.1" é incompatível com a versão solicitada "unset-value@^1.0.0"
[3/5] Buscando pacotes...
erro ember-template-lint@6.0.0: O engine "node" é incompatível com este módulo. Versão esperada "^\18.18.0 || ^20.9.0 || >=21.1.0". Obteve "18.16.0"
erro Módulo incompatível encontrado.
info Visite https://yarnpkg.com/en/docs/cli/install para documentação sobre este comando.
Docker Manager: FALHA AO ATUALIZAR
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:210:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:101:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor.rb:527:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb:37:in `require'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb:37:in `require'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
Iniciando 3 worker(s) do Unicorn que foram parados inicialmente

Alguma ideia?

Você deve fazer um upgrade pela linha de comando.

./launcher rebuild app

2 curtidas

Olá Jay,

Eu fiz isso. Também tentei executar ./launcher start app.

Mas recebi um erro diferente. Desta vez, é um erro de gateway inválido do Nginx. Notei que o Discourse reclamou de pouco espaço de armazenamento, mas liberei algum espaço.

Anexei algumas informações.

Você fez um start ou um rebuild depois de liberar o espaço?

O bad gateway é esperado por um minuto ou alguns minutos após iniciar o container. Mas pode ser que você tenha migrado o banco de dados e o container antigo não funcionará mais.

1 curtida

Então, toda vez que eu executo ./launcher rebuild app ou ./launcher start app ou ./launcher restart app, sou sempre recebido com a pergunta irritante sobre a limpeza do espaço. Eu pressiono Y toda vez.

Ok, liberei algum espaço manualmente. Aparentemente, existem arquivos inúteis no diretório snap.

Em seguida, tentei novamente o processo ./launcher restart app. Desta vez, o erro desapareceu.

Mas ainda recebo o erro 502 Bad Gateway.

1 curtida

Se você ainda estiver recebendo isso depois que o site estiver ativo por alguns minutos, verifique /var/discourse/shared/standalone/logs/rails/production.log e também .../logs/var-log/nginx/*

Então, é um problema do PostgreSQL. Como eu resolvo isso? Quer dizer, nós não iniciamos o servidor PostgreSQL manualmente, certo.

Os arquivos dentro de postgres_data pertencem ao meu nome de usuário no servidor e o grupo é crontab.

Por quê?

Isso não é uma instalação padrão?

Eu usei a instalação padrão.

Então o processo de atualização (via painel de administração) falhou. Então tive que acessar o servidor via ssh e liberar algum espaço. Quando executei ./launcher rebuild (ou restart) app, o processo não apresentou erro, mas recebi o erro 502 Bad Gateway.

Então, o postgres_data deve pertencer a quem? Root?

Isso deve ser instalado como root.

Eu executei ./launcher rebuild (ou restart) app como root. Eu executei sudo su primeiro. De qualquer forma, não acho que você possa executar launcher com um usuário normal (o Docker reclamaria).

Ok, finalmente corrigi esses problemas.

  1. Redimensionei o armazenamento para dar espaço ao Discord. Criei um snapshot da VM do Discord no GCP e restaurei com um armazenamento maior.
  2. Alterei o conteúdo do arquivo containers/app.yml:

De

templates:
  - "templates/postgres.template.yml"

Para

templates:
  - "templates/postgres.13.template.yml"

Em seguida, executei ./launcher rebuild app sem mais problemas.

Obrigado!

2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.