Atualização falhando com FAILED TO BOOTSTRAP

Ao tentar atualizar nossa instância do Discourse, foi exigido um git pull hoje, mas o ./launcher rebuild está falhando com FAILED TO BOOTSTRAP e ainda não estou vendo de onde vem a falha.

Estamos executando o Discourse no Ubuntu 18.04. Tudo estava funcionando bem até a atualização de hoje.

Nosso app.yml é chamado web.yml, então executei:

# git pull
# ./launcher rebuild web

O final da saída se parece com isto:

I, [2022-02-18T19:25:46.155360 #1]  INFO -- : 
> cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
Discourse requires Redis 6.2.0 or up
I, [2022-02-18T19:25:55.644442 #1]  INFO -- : gem install sawyer -v 0.8.2 -i /var/www/discourse/plugins/discourse-github/gems/2.7.5 --no-document --ignore-dependencies --no-user-install
Successfully installed sawyer-0.8.2
1 gem installed
gem install octokit -v 4.21.0 -i /var/www/discourse/plugins/discourse-github/gems/2.7.5 --no-document --ignore-dependencies --no-user-install
Successfully installed octokit-4.21.0
1 gem installed
 
 
 
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 1121 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
85459e34ac2c6275dd1700de2c469124a9fded84800b8c6b4686c1c6b66824e2
** 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.

Saída completa aqui

Estes são nossos plugins atuais:

discourse/docker_manager.git
discourse/discourse-github.git
discourse/discourse-solved.git
discourse/discourse-data-explorer.git
discourse/discourse-akismet.git
discourse/discourse-spoiler-alert.git
cpradio/discourse-plugin-replygif.git
discourse/discourse-push-notifications.git
discourse/discourse-chat-integration

Quando analiso a saída do launcher, não vejo o erro que está causando a falha. Alguma sugestão sobre o que pode estar causando a falha?

Tentei reverter o commit anterior para ver se conseguia reconstruir com sucesso nosso contêiner web sem a última alteração, mas ele ainda falha com uma falha de bootstrap. :confused:

Atualização:

Estávamos usando uma configuração de contêineres separada, que aparentemente não é uma boa ideia, e nosso contêiner de dados estava desatualizado, executando o Redis v5.0.5 (o Discourse atualmente requer 6.2.0+). Portanto, reconstruímos nosso contêiner de dados e, em seguida, os contêineres web com sucesso. Após essa experiência, provavelmente abandonaremos a abordagem de múltiplos contêineres daqui para frente.

Graças a @pfaffman pelos links incrivelmente úteis!

Qual Redis você está usando?

Veja também Skip Redis Version Check

Ah. Entendi. Estamos executando o discourse_docker com contêineres web e de dados vinculados, então o Redis está rodando dentro do nosso contêiner de dados.

Dentro do nosso contêiner de dados:

# redis-server --version
Redis server v=5.0.5

Então, isso explica. Parece que precisamos atualizar nosso contêiner de dados também. Isso me deixa mais apreensivo. Quando esse requisito foi adicionado? Talvez eu pudesse reverter para uma versão anterior do contêiner web até que meus reforços (na Austrália) estejam acordados e disponíveis. :wink:

Uau. Olhando o histórico do git, parece que a versão do Redis não está na faixa 5.x há dois anos! Mas sei que fizemos algumas atualizações bem-sucedidas ao longo do caminho (incluindo git pulls).

Com base no Pular Verificação de Versão do Redis, parece que eles recentemente começaram a ser aplicados. Já cavou um buraco grande o suficiente para uma sexta-feira e não quero tentar atualizar nosso contêiner de dados sem alguma ajuda… então, tentarei reverter para uma versão ainda anterior do docker_discourse para ver se consigo voltar a um estado onde o requisito do Redis não seja aplicado por enquanto (até que possamos atualizar nosso contêiner de dados).

1 curtida

Isso não funcionará, pois a verificação vem do repositório principal. Deixar os contêineres de dados sem atualizações por vários anos não é bom, pois enviamos correções de desempenho e segurança muitas vezes nesse período.

Ainda mais um motivo pelo qual não recomendo a configuração de contêineres separados.

3 curtidas

Você precisa reconstruir o contêiner de dados. Veja também Atualização do PostgreSQL 13

2 curtidas

Obrigado. Estamos aguardando a atualização do Postgres neste exato momento. :slight_smile:

E obrigado pelo link para as dicas de atualização do Postgres 13. Muito útil!

2 curtidas

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