Upgrade schlägt fehl mit FAILED TO BOOTSTRAP

Beim Versuch, unsere Discourse-Instanz zu aktualisieren, war heute ein git pull erforderlich, aber der ./launcher rebuild schlägt mit FAILED TO BOOTSTRAP fehl, und ich sehe noch nicht, woher der Fehler kommt.

Wir betreiben Discourse auf Ubuntu 18.04. Bis zum heutigen Upgrade lief alles reibungslos.

Unsere app.yml heißt web.yml, also habe ich Folgendes ausgeführt:

# git pull
# ./launcher rebuild web

Der Schwanz der Ausgabe sieht so aus:

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.

Full output here

Dies sind unsere aktuellen Plugins:

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

Wenn ich die Launcher-Ausgabe durchsuche, sehe ich nicht den Fehler, der zum Fehlschlag führt. Irgendwelche Vorschläge, was die Ursache für den Fehlschlag sein könnte?

Ich habe versucht, den vorherigen Commit rückgängig zu machen, um zu sehen, ob ich unseren Web-Container erfolgreich ohne die neueste Änderung neu erstellen konnte, aber er schlägt immer noch mit einem Bootstrap-Fehler fehl. :confused:

Update:

Wir haben ein separates Container-Setup verwendet, was anscheinend keine gute Idee ist, und unser Datencontainer war veraltet und lief mit Redis v5.0.5 (Discourse benötigt derzeit 6.2.0+). Also haben wir unseren Datencontainer und dann die Web-Container erfolgreich neu erstellt. Nach dieser Erfahrung werden wir den Multi-Container-Ansatz wahrscheinlich zukünftig aufgeben.

Vielen Dank an @pfaffman für die unglaublich hilfreichen Links!

Welches Redis verwendest du?

Siehe auch Skip Redis Version Check

Ah. Ich verstehe. Wir betreiben discourse_docker mit verknüpften Web- und Datencontainern, daher läuft Redis in unserem Datencontainer.

In unserem Datencontainer:

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

Das erklärt es also. Es sieht so aus, als müssten wir auch unseren Datencontainer aktualisieren. Das macht mir mehr Sorgen. Wann wurde diese Anforderung hinzugefügt? Vielleicht könnte ich zu einer früheren Version des Webcontainers zurückkehren, bis meine Verstärkung (in Australien) wach ist und verfügbar ist. :wink:

Wow. Wenn ich mir den git-Verlauf ansehe, sieht es so aus, als wäre die Redis-Version seit zwei Jahren nicht mehr im 5.x-Bereich! Aber ich weiß, dass wir unterwegs einige erfolgreiche Upgrades durchgeführt haben (einschließlich Git-Pulls).

Basierend auf Skip Redis Version Check scheint es, dass sie kürzlich angefangen haben, durchgesetzt zu werden. Ich habe für einen Freitag schon ein großes Loch gegraben und möchte nicht versuchen, unseren Datencontainer zu aktualisieren, ohne Hilfe zu bekommen… daher werde ich versuchen, zu einer noch früheren Version von docker_discourse zurückzukehren, um zu einem Zustand zu gelangen, in dem die Redis-Anforderung vorerst nicht mehr erzwungen wird (bis wir unseren Datencontainer aktualisieren können).

1 „Gefällt mir“

Das wird nicht funktionieren, da die Prüfung aus dem Haupt-Repository kommt. Die Daten-Container über mehrere Jahre ohne Updates zu lassen, ist nicht gut, da wir in dieser Zeit viele Male Performance- und Sicherheitsfixes ausgeliefert haben.

Noch ein Grund, warum ich das separate Container-Setup nicht empfehle.

3 „Gefällt mir“

Sie müssen den Datencontainer neu erstellen. Siehe auch PostgreSQL 13 Update

2 „Gefällt mir“

Danke. Wir warten gerade auf das Postgres-Upgrade. :slight_smile:

Und danke für den Link zu den Postgres 13-Update-Tipps. Sehr hilfreich!

2 „Gefällt mir“

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