Aktualisierung von Discourse schlägt fehl

Ich habe heute versucht, Discourse auf die neueste Version zu aktualisieren. Es ist fehlgeschlagen. Hier ist das Protokoll:

********************************************************
*** Bitte haben Sie Geduld, die nächsten Schritte können eine Weile dauern ***
********************************************************
Unicorn wird neu gestartet, um Speicher freizugeben
Neustart von Unicorn pid: 548
Warte auf das Neuladen von Unicorn.
Warte auf das Neuladen von Unicorn..
Warte auf das Neuladen von Unicorn...
Warte auf das Neuladen von Unicorn....
Warte auf das Neuladen von Unicorn.....
Warte auf das Neuladen von Unicorn......
Warte auf das Neuladen von Unicorn.......
Warte auf das Neuladen von Unicorn........
Warte auf das Neuladen von Unicorn.........
Stoppe 3 Unicorn-Worker, um Speicher freizugeben
Stoppe die Job-Warteschlange, um Speicher zurückzufordern, Master-PID ist 2943724
$ cd /var/www/discourse && git fetch --tags --prune-tags --prune --force
$ cd /var/www/discourse && git reset --hard HEAD@{upstream}
HEAD ist jetzt bei be4f1e335 PERF: Cache `hostname` in `DiscourseLogstashLogger` (#27442)
$ bundle install --retry 3 --jobs 4
Bundle abgeschlossen! 141 Gemfile-Abhängigkeiten, 174 jetzt installierte Gems.
Gems in den Gruppen 'development' und 'test' wurden nicht installiert.
Gebündelte Gems werden in `./vendor/bundle` installiert.
1 direkt von Ihnen abhängige installierte Gem sucht nach Finanzierung.
  Führen Sie `bundle fund` für Details aus.
$ yarn install
yarn install v1.22.19
[1/5] Validating package.json...
[2/5] Resolving packages...
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
[3/5] Fetching packages...
error ember-template-lint@6.0.0: Die Engine "node" ist mit diesem Modul nicht kompatibel. Erwartete Version "^18.18.0 || ^20.9.0 || >=21.1.0". Erhalten "18.16.0"
error Inkompatibles Modul gefunden.
info Besuchen Sie https://yarnpkg.com/en/docs/cli/install für Dokumentation zu diesem Befehl.
Docker Manager: UPGRADE FEHLGESCHLAGEN
#<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>'
Starte 3 Unicorn-Worker, die ursprünglich gestoppt wurden

Irgendwelche Ideen?

Sie sollten ein Upgrade über die Befehlszeile durchführen.

./launcher rebuild app

2 „Gefällt mir“

Hallo Jay,

Ich habe das getan. Ich habe auch versucht, ./launcher start app auszuführen.

Aber ich habe eine andere Fehlermeldung erhalten. Diesmal ist es ein Bad Gateway-Fehler von Nginx. Mir ist aufgefallen, dass Discourse über wenig Speicherplatz geklagt hat, aber ich habe etwas Platz freigeräumt.

Einige Informationen sind beigefügt.

Haben Sie nach dem Freigeben des Speicherplatzes einen Neustart oder einen Neuaufbau durchgeführt?

Das „Bad Gateway“ wird für ein oder wenige Minuten nach dem Starten des Containers erwartet. Es kann jedoch sein, dass Sie die Datenbank migriert haben und der alte Container nicht mehr funktioniert.

1 „Gefällt mir“

Also, jedes Mal, wenn ich ./launcher rebuild app oder ./launcher start app oder ./launcher restart app ausführe, werde ich immer mit der nervigen Frage nach dem Aufräumen des Speicherplatzes begrüßt. Ich drücke jedes Mal J.

Okay, ich habe manuell etwas Speicherplatz freigegeben. Anscheinend gibt es nutzlose Dateien im Snap-Verzeichnis.

Dann habe ich den Vorgang ./launcher restart app erneut versucht. Dieses Mal verschwand der Fehler.

Aber ich bekomme immer noch den 502 Bad Gateway-Fehler.

1 „Gefällt mir“

Wenn Sie dies immer noch erhalten, nachdem die Website einige Minuten lang verfügbar war, schauen Sie sich /var/discourse/shared/standalone/logs/rails/production.log und auch .../logs/var-log/nginx/* an.

Es ist also ein PostgreSQL-Problem. Wie behebe ich das? Ich meine, wir starten den PostgreSQL-Server nicht manuell, oder?

Die Dateien in postgres_data gehören meinem Benutzernamen auf dem Server und die Gruppe ist crontab.

Warum?

Ist das keine Standardinstallation?

Ich habe die Standardinstallation verwendet.

Dann schlug der Update-Prozess (über das Admin-Dashboard) fehl. Also musste ich mich per SSH auf den Server einloggen und einige Speicherplätze freiräumen. Als ich ./launcher rebuild (oder restart) app ausführte, gab der Prozess keinen Fehler aus, aber ich erhielt die Fehlermeldung 502 Bad Gateway.

Also, wem sollte postgres_data gehören? Root?

Dies sollte alles als Root installiert werden.

Ich habe ./launcher rebuild (oder restart) app als Root ausgeführt. Ich habe zuerst sudo su ausgeführt. Jedenfalls glaube ich nicht, dass man launcher als normaler Benutzer ausführen kann (Docker würde sich beschweren).

Okay, ich habe diese Probleme endlich behoben.

  1. Ich habe den Speicher vergrößert, um Discord etwas Platz zu geben. Ich habe einen Snapshot der Discord-VM in GCP erstellt und sie mit einem größeren Speicher wiederhergestellt.
  2. Ich habe den Inhalt der Datei containers/app.yml geändert:

Von

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

Zu

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

Dann habe ich ./launcher rebuild app ausgeführt, ohne weitere Probleme.

Danke!

2 „Gefällt mir“

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