L'aggiornamento di Discourse fallisce

Ho provato ad aggiornare Discourse all’ultima versione oggi. Non è riuscito. Ecco il log:

********************************************************
*** Si prega di essere pazienti, i prossimi passaggi potrebbero richiedere del tempo ***
********************************************************
Ciclo Unicorn, per liberare memoria
Riavvio di unicorn pid: 548
In attesa del ricaricamento di Unicorn.
In attesa del ricaricamento di Unicorn..
In attesa del ricaricamento di Unicorn...
In attesa del ricaricamento di Unicorn....
In attesa del ricaricamento di Unicorn.....
In attesa del ricaricamento di Unicorn......
In attesa del ricaricamento di Unicorn.......
In attesa del ricaricamento di Unicorn........
In attesa del ricaricamento di Unicorn.........
Arresto di 3 worker Unicorn, per liberare memoria
Arresto della coda di processi per recuperare memoria, pid master è 2943724
$ cd /var/www/discourse && git fetch --tags --prune-tags --prune --force
$ cd /var/www/discourse && git reset --hard HEAD@{upstream}
HEAD è ora a be4f1e335 PERF: Cache `hostname` in `DiscourseLogstashLogger` (#27442)
$ bundle install --retry 3 --jobs 4
Bundle completato! 141 dipendenze Gemfile, 174 gem ora installate.
Le gem nei gruppi 'development' e 'test' non sono state installate.
Le gem raggruppate sono installate in `./vendor/bundle`
1 gemma installata su cui dipendi direttamente sta cercando finanziamenti.
  Esegui `bundle fund` per i dettagli
$ yarn install
yarn install v1.22.19
[1/5] Validazione package.json...
[2/5] Risoluzione pacchetti...
warning Il campo Resolution "unset-value@2.0.1" è incompatibile con la versione richiesta "unset-value@^1.0.0"
[3/5] Recupero pacchetti...
error ember-template-lint@6.0.0: Il motore "node" è incompatibile con questo modulo. Versione prevista "^\18.18.0 || ^20.9.0 || >=21.1.0". Ottenuto "18.16.0"
error Trovato modulo incompatibile.
info Visita https://yarnpkg.com/en/docs/cli/install per la documentazione su questo comando.
Docker Manager: AGGIORNAMENTO FALLITO
#<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>'
Avvio di 3 worker Unicorn che erano stati fermati inizialmente

Qualche idea?

Dovresti eseguire un aggiornamento dalla riga di comando.

./launcher rebuild app

2 Mi Piace

Ciao Jay,

Ho fatto così. Ho anche provato a eseguire ./launcher start app.

Ma ho ricevuto un errore diverso. Questa volta, è un errore di “bad gateway” da Nginx. Ho notato che Discourse si lamentava di poco spazio di archiviazione, ma ho liberato un po’ di spazio.

Allego alcune informazioni.

Hai eseguito un avvio o una ricompilazione dopo aver liberato spazio?

Il bad gateway è previsto per un minuto o pochi minuti dopo l’avvio del container. Ma potrebbe essere che tu abbia migrato il database e il vecchio container non funzionerà più.

1 Mi Piace

Quindi, ogni volta che eseguo ./launcher rebuild app o ./launcher start app o ./launcher restart app, vengo sempre accolto dalla fastidiosa domanda sulla pulizia dello spazio. Premo Y ogni volta.

Ok, ho liberato manualmente dello spazio. Apparentemente, ci sono file inutili nella directory snap.

Poi ho ritentato il processo ./launcher restart app. Questa volta, l’errore è scomparso.

Ma continuo a ricevere l’errore 502 Bad Gateway.

1 Mi Piace

Se stai ancora riscontrando questo problema dopo che il sito è attivo da qualche minuto, controlla /var/discourse/shared/standalone/logs/rails/production.log e anche .../logs/var-log/nginx/*

Quindi, è un problema di PostgreSQL. Come risolvo questo problema? Voglio dire, non avviamo il server PostgreSQL manualmente, giusto?

I file all’interno di postgres_data sono di proprietà del mio nome utente sul server e il gruppo è crontab.

Perché?

Questa non è un’installazione standard?

Ho usato l’installazione standard.

Quindi il processo di aggiornamento (tramite dashboard di amministrazione) è fallito. Così ho dovuto connettermi via ssh al server e liberare un po’ di spazio. Quando ho eseguito ./launcher rebuild (o restart) app, il processo non ha generato errori, ma ho ottenuto un errore 502 Bad Gateway.

Quindi, a chi dovrebbe appartenere postgres_data? A root?

Questo dovrebbe essere installato tutto come root.

Ho eseguito ./launcher rebuild (o restart) app come root. Ho eseguito prima sudo su. Comunque, non credo che tu possa eseguire launcher con un utente normale (Docker si lamenterebbe).

Okay, ho finalmente risolto questi problemi.

  1. Ho ridimensionato lo storage per dare un po’ di spazio a Discord. Ho creato uno snapshot della VM di Discord in GCP e l’ho ripristinato con uno storage più grande.
  2. Ho modificato il contenuto del file containers/app.yml:

Da

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

a

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

Poi ho eseguito ./launcher rebuild app senza più problemi.

Grazie!

2 Mi Piace

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