Upgrade con errore FAILED TO BOOTSTRAP

Quando si tenta di aggiornare la nostra istanza Discourse, oggi ha richiesto un git pull, ma il comando ./launcher rebuild sta fallendo con FAILED TO BOOTSTRAP e non vedo ancora da dove provenga il fallimento.

Stiamo eseguendo Discourse su Ubuntu 18.04. Tutto è andato bene fino all’aggiornamento di oggi.

Il nostro app.yml si chiama web.yml, quindi ho eseguito:

# git pull
# ./launcher rebuild web

La coda dell’output è simile a questa:

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.

Output completo qui

Questi sono i nostri plugin attuali:

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 analizzo l’output del launcher, non vedo l’errore che causa il fallimento. Avete suggerimenti su cosa potrebbe causare il fallimento?

Ho provato a ripristinare il commit precedente per vedere se riuscivo a ricostruire con successo il nostro container web senza l’ultima modifica, ma continua a fallire con un fallimento di bootstrap. :confused:

Aggiornamento:

Stavamo utilizzando una configurazione di container separata, che apparentemente non è una buona idea, e il nostro container dati era obsoleto, eseguendo Redis v5.0.5 (Discourse attualmente richiede 6.2.0+). Quindi, abbiamo ricostruito il nostro container dati e poi i container web con successo. Dopo questa esperienza, probabilmente abbandoneremo l’approccio multi-container in futuro.

Grazie a @pfaffman per i link incredibilmente utili!

Quale Redis stai usando?

Vedi anche Skip Redis Version Check

Ah. Capisco. Stiamo eseguendo discourse_docker con contenitori web e dati collegati, quindi Redis è in esecuzione all’interno del nostro contenitore dati.

All’interno del nostro contenitore dati:

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

Quindi, questo spiega tutto. Sembra che dobbiamo aggiornare anche il nostro contenitore dati. Questo mi rende più nervoso. Quando è stato aggiunto quel requisito? Forse potrei tornare a una versione precedente del contenitore web finché i miei rinforzi (in Australia) non saranno svegli e disponibili. :wink:

Wow. Guardando la cronologia di git sembra che la versione di Redis non sia nell’intervallo 5.x da due anni! Ma so che abbiamo effettuato alcuni aggiornamenti riusciti lungo il percorso (inclusi i git pull).

Basandosi su Skip Redis Version Check, sembra che di recente abbiano iniziato a essere applicati. Ho già scavato una buca abbastanza grande per un venerdì e non voglio provare ad aggiornare il nostro container dati senza un po’ di aiuto… quindi, proverò a tornare a una versione precedente di docker_discourse per vedere se riesco a tornare a uno stato in cui il requisito di Redis non è imposto per ora (finché non potremo aggiornare il nostro container dati).

1 Mi Piace

Non funzionerà, poiché il controllo proviene dal repository principale. Lasciare i container di dati senza aggiornamenti per diversi anni non è l’ideale, poiché abbiamo distribuito correzioni di prestazioni e sicurezza molte volte in quel periodo.

Un altro motivo per cui non consiglio la configurazione di container separati.

3 Mi Piace

È necessario ricreare il contenitore dei dati. Vedi anche Aggiornamento PostgreSQL 13

2 Mi Piace

Grazie. Stiamo aspettando l’aggiornamento di Postgres in questo momento. :slight_smile:

E grazie per il link ai suggerimenti per l’aggiornamento di Postgres 13. Molto utile!

2 Mi Piace

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