Ich bekomme ständig Fehler beim Aktualisieren

Egal wie oft ich versuche zu aktualisieren, ich erhalte immer die Meldung Sorry, there was an error updating Discourse. Please check the logs below. wenn ich über den Browser aktualisiere. Ich muss mich immer auf das Terminal verlassen, und das ist nicht gut, denn dann muss ich mein Forum immer für etwa 30 Minuten offline nehmen.

Wenn mir hier jemand helfen kann, wäre das sehr willkommen.

Fehler:

Zusammenfassung
********************************************************
*** Bitte haben Sie Geduld, die nächsten Schritte können eine Weile dauern ***
********************************************************
Cycling Unicorn, um Speicher freizugeben
Neustart des Unicorn-PIDs: 603
Warte auf Unicorn-Neuladen.
Warte auf Unicorn-Neuladen..
Warte auf Unicorn-Neuladen...
Warte auf Unicorn-Neuladen....
Warte auf Unicorn-Neuladen.....
Warte auf Unicorn-Neuladen......
Warte auf Unicorn-Neuladen.......
Warte auf Unicorn-Neuladen........
Warte auf Unicorn-Neuladen.........
Warte auf Unicorn-Neuladen..........
Warte auf Unicorn-Neuladen...........
Warte auf Unicorn-Neuladen............
Warte auf Unicorn-Neuladen.............
Warte auf Unicorn-Neuladen..............
Warte auf Unicorn-Neuladen...............
Warte auf Unicorn-Neuladen................
Warte auf Unicorn-Neuladen.................
Warte auf Unicorn-Neuladen..................
Warte auf Unicorn-Neuladen...................
Warte auf Unicorn-Neuladen....................
Warte auf Unicorn-Neuladen.....................
Warte auf Unicorn-Neuladen......................
Warte auf Unicorn-Neuladen.......................
Warte auf Unicorn-Neuladen........................
Warte auf Unicorn-Neuladen.........................
Warte auf Unicorn-Neuladen..........................
Warte auf Unicorn-Neuladen...........................
Warte auf Unicorn-Neuladen............................
Warte auf Unicorn-Neuladen.............................
Warte auf Unicorn-Neuladen..............................
Warte auf Unicorn-Neuladen...............................
$ cd /var/www/discourse 
$ git reset --hard HEAD@{upstream}
HEAD ist jetzt bei fe1b1edba FIX: entfernt + aus dem Tooltip des RTE-Toggles (#33542)
$ bundle install --retry 3 --jobs 4
Bundle abgeschlossen! 143 Gemfile-Abhängigkeiten, 190 Gems jetzt installiert.
Gems in den Gruppen 'test' und 'development' wurden nicht installiert.
Gebündelte Gems sind in `./vendor/bundle` installiert
3 direkt von Ihnen abhängige installierte Gems suchen nach Finanzierung.
  Führen Sie `bundle fund` für Details aus
$ if [ -f yarn.lock ]; then yarn install; else CI=1 pnpm install; fi
Umfang: alle 16 Workspace-Projekte
Die Lockfile ist auf dem neuesten Stand, der Auflösungsschritt wird übersprungen
Bereits auf dem neuesten Stand

Fertig in 9.1s mit pnpm v9.15.6
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
discourse-adplugin ist bereits in der neuesten kompatiblen Version
discourse-categories-suppressed ist bereits in der neuesten kompatiblen Version
discourse-doc-categories ist bereits in der neuesten kompatiblen Version
Ungültige Versionsliste in /var/www/discourse/plugins/discourse-landing-pages
discourse-landing-pages ist bereits in der neuesten kompatiblen Version
discourse-solved ist bereits in der neuesten kompatiblen Version
docker_manager ist bereits in der neuesten kompatiblen Version
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
Multisite-Migrator läuft mit 1 Threads

Migrieren von Standard
Seeding von Standard
*** Assets werden gebündelt. Dies wird eine Weile dauern *** 
$ bundle exec rake themes:update assets:precompile
Aktualisiere Themes mit Konkurrenz: 10
[db:default] 'New Topic Header Button' - wird geprüft...
[db:default] 'New Topic Header Button' - ist auf dem neuesten Stand
[db:default] 'Category Banners' - wird geprüft...
[db:default] 'Category Banners' - ist auf dem neuesten Stand
[db:default] 'Clickable Topic' - wird geprüft...
[db:default] 'Clickable Topic' - ist auf dem neuesten Stand
[db:default] 'Tag Banners' - wird geprüft...
[db:default] 'Tag Banners' - ist auf dem neuesten Stand
[db:default] 'Breadcrumb Links' - wird geprüft...
[db:default] 'Breadcrumb Links' - ist auf dem neuesten Stand
[db:default] 'Welcome Link Banner' - wird geprüft...
[db:default] 'Welcome Link Banner' - ist auf dem neuesten Stand
[db:default] 'Tag Icons' - wird geprüft...
[db:default] 'Tag Icons' - ist auf dem neuesten Stand
[db:default] 'Social Share' - wird geprüft...
[db:default] 'Social Share' - ist auf dem neuesten Stand
[db:default] 'Navigation Menu Display Control' - wird geprüft...
[db:default] 'Navigation Menu Display Control' - ist auf dem neuesten Stand
[db:default] 'DiscoTOC' - wird geprüft...
Node.js heap_size_limit ist kleiner als 2048MB. Setze --max-old-space-size=2048 und CHEAP_SOURCE_MAPS=1
Vorhandener Build ist nicht wiederverwendbar.
- Vorhanden: {"ember_env"=\u003e"production", "core_tree_hash"=\u003e"c71c1ad482ff7f24c3ad3a76d5a521861f29e1fb"}
- Aktuell: {"ember_env"=\u003e"production", "core_tree_hash"=\u003e"d026d5621e9421eaf67123aab7361a44f0fa9c31"}
Führe vollständigen Core-Build aus...
Bauen
Umgebung: production
Die Einstellung 'staticAddonTrees' wird in der nächsten Version von Embroider standardmäßig auf true gesetzt und kann nicht deaktiviert werden. Um sich darauf vorzubereiten, sollten Sie 'staticAddonTrees: true' in Ihrer Embroider-Konfiguration festlegen.
Die Einstellung 'staticAddonTestSupportTrees' wird in der nächsten Version von Embroider standardmäßig auf true gesetzt und kann nicht deaktiviert werden. Um sich darauf vorzubereiten, sollten Sie 'staticAddonTestSupportTrees: true' in Ihrer Embroider-Konfiguration festlegen.
Bauen...
...[ConfigLoader]
...[Babel: @embroider/macros 
...[Babel: pretty-text 
...[Babel: @ember/legacy-built-in-components 
...[Babel: ember-source 
[BABEL] Hinweis: Der Code-Generator hat das Styling von /var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.js aufgrund einer Überschreitung von 500KB deoptimiert.
[BABEL] Hinweis: Der Code-Generator hat das Styling von /var/www/discourse/app/assets/javascripts/discourse/ember/ember.js aufgrund einer Überschreitung von 500KB deoptimiert.
...[Babel: @glimmer/component 
...[Babel: @ember/render-modifiers 
...[Babel: dialog-holder 
...[Babel: ember-this-fallback 
...[Babel: ember-buffered-proxy 
...[Babel: ember-cache-primitive-polyfill 
...[Babel: float-kit 
...[Babel: select-kit 
...[@embroider/compat/app]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
undefined
 ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL  Befehl wurde mit SIGKILL (Erzwungene Beendigung) beendet: ember build -prod
/var/www/discourse/script/assemble_ember_build.rb:103:in `system': Command failed with exit 1: pnpm (RuntimeError)
	from /var/www/discourse/script/assemble_ember_build.rb:103:in `
Docker Manager: UPGRADE FEHLGESCHLAGEN
#
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:211:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:112:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in 
/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 `
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:44:in `block in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.2.2.1/lib/active_support/execution_wrapper.rb:91:in `wrap'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:70:in `conditional_executor'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command/base.rb:178:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.3.2/lib/thor.rb:538:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command/base.rb:73:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:71:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:149:in `with_argv'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/command.rb:69:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-7.2.2.1/lib/rails/commands.rb:18:in `
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `
Starte 1 Unicorn-Worker(s), die ursprünglich gestoppt wurden

Sie müssen eine größere Auslagerungsdatei erstellen.
Ich hatte das gleiche Problem. Das hat es gelöst

1 „Gefällt mir“

Können Sie mir erklären, wie das geht? Ich bin damit nicht vertraut. Ich erinnere mich, dass jemand darüber gesprochen hat, aber ich glaube nicht, dass ich irgendwelche Änderungen vorgenommen habe (nun, anscheinend habe ich das wahrscheinlich nicht getan und das ist es, was das verursacht).
Danke

Ich empfehle ein Upgrade über die Befehlszeile

cd /var/discourse
./launcher rebuild app

Sie haben möglicherweise weiterhin Speicherprobleme. Wenn dies fehlschlägt, geben Sie den Fehler und die Ausgabe von an

free -h
2 „Gefällt mir“

Verwenden Sie Google oder YouTube:
“Linux-Swap-Datei”

1 „Gefällt mir“

Hier ist die Anleitung von Digital Ocean:

Normalerweise müssen Sie so viel Swap hinzufügen, wie Sie RAM haben.

1 „Gefällt mir“

https://meta.discourse.org/search?context=topic&context_id=373634&q=Node.js%20heap_size_limit%20is%20less%20than%202048MB&skip_context=true

1 „Gefällt mir“

Updates
Nach ein paar Gesprächen mit Claude, hier ist, was passiert:

Ich hatte anfangs Folgendes:

sudo swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   1G   -2

Das verursachte immer noch den Fehler.

Also konnte ich es auf 4 GB erhöhen, glaube ich:

sudo swapon --show
NAME      TYPE SIZE   USED PRIO
/swapfile file   4G 714.4M   -2

Nun, hier ist das Seltsame: Während ich das tat, ging ich zurück zur Update-Seite und zu meiner Überraschung war alles aktualisiert…
Wie ist das möglich, wenn es mir diesen Fehler angezeigt hat? :confused:

Auf jeden Fall verstehe ich jetzt zumindest, dass eine Swap-Datei mit dem Festplattenspeicher und nicht mit dem RAM zusammenhängt. Ich benutze DigitalOcean’s Droplet mit 1 GB RAM und 25 GB Festplattenspeicher.

Ich schätze, die 4 GB Swap-Datei ist also im Moment in Ordnung?
Aber warum hat es sich trotzdem aktualisiert, auch nachdem es mir diesen Fehler angezeigt hat?

Eine Swap-Datei ist eine Möglichkeit, einen Teil Ihres Festplattenspeichers als sehr, sehr langsamen RAM zu nutzen, daher hängt sie sowohl vom Festplattenspeicher als auch vom RAM ab.

25 GB sind gerade genug Platz. Sie müssen vor praktisch jedem Upgrade über die Befehlszeile ein ./launcher cleanup ausführen.

1 „Gefällt mir“

Was ich meinte war, als ich Diskussionen darüber sah, wenn Leute sagten „Erstelle eine 2 GB Swap-Datei“, dachte ich, es hätte etwas mit der Menge an RAM zu tun, also könnte ich es in meinem Fall nicht tun, weil ich nur 1 GB RAM habe. Jetzt verstehe ich, dass die Swap-Datei tatsächlich Festplattenspeicher ist, fast so, als würde man eine kleine Partition erstellen. Ja, sie hängen zusammen, weil sie bei Bedarf „kommunizieren“, aber ich war mit meinem Kommentar wörtlicher.

Das ist alles, was ich mir im Moment leisten kann, und da ich noch keine wirkliche Community habe, reicht das aus. Ich werde aufrüsten, wenn die Community wächst.

Sie sagen also, dass ich vor jedem Update, auch wenn ich das Admin-Panel zum Aktualisieren verwende, ./launcher cleanup über das Terminal ausführen sollte?

Nein. Die Verwendung des Admin-Panels führt nicht dazu, dass Docker mehr Images erstellt, die er nicht verwendet. Möglicherweise haben Sie jedoch nicht genügend Speicher (RAM plus Swap), um das Upgrade über das Admin-Panel durchzuführen.

Das ist alles ein bisschen verwirrend für mich…
Einige Leute sagten, sie hätten das gleiche Problem wie ich, und das Erstellen der 2GB Swap-Datei habe ihnen geholfen. Ich habe jetzt die 4GB Swap-Datei erstellt, aber das war, nachdem ich aktualisiert hatte, daher muss ich auf ein weiteres Update warten, um es zu testen.

Wenn ich also zum Beispiel auf 2GB RAM aufrüste, wäre das gut genug, auch wenn der Speicherplatz immer noch 25GB beträgt?

Ich bin ganz neu in all dem, daher entschuldige ich mich, wenn das für die meisten Leute zu offensichtlich ist. Ich versuche nur, die Dinge herauszufinden, während ich daran arbeite.

Eine 1-GB-Maschine mit 4 GB Swap sollte ausreichen.

Ich persönlich würde für den Anfang mindestens 2 GB mit 2 GB Swap empfehlen, aber Sie erfüllen die minimalen veröffentlichten Anforderungen einer Standardinstallation.

Ich würde weitermachen und es verwenden und nur upgraden, wenn Sie feststellen, dass die Dinge zu langsam sind.

Sie sollten jetzt keine Probleme mit dem Speicher haben.

2 „Gefällt mir“

Außer, wie Sie sagten, die Festplatte wird ziemlich schnell voll sein, und cleanup muss gemacht werden, egal wie viel RAM vorhanden ist.

Danke. Vorerst möchte ich nur Inhalte hinzufügen und einige Benutzer hinzufügen, bis es sinnvoll ist, ein Upgrade durchzuführen.

Abgesehen vom Thema, aber immer noch im Zusammenhang mit dem Festplattenspeicher: Als ich alles durchging, bemerkte ich, dass ich etwa 18 GB verbrauchte, und als ich ChatGPT fragte, sagte es, dass es normal sei, dass Discourse so viel Speicherplatz beansprucht?

Wenn ja, dann würde mein 25-GB-Server 18 GB für die Installation + 4 GB für die Swap-Datei verwenden, sodass mir nicht viel Platz bleibt. Können Sie das bestätigen?

Ich werde nicht mit Ihrem Roboter diskutieren.

Sie haben Recht, dass die 4 GB von Ihrem verfügbaren Festplattenspeicher abgezogen werden (natürlich).

2 „Gefällt mir“

Ich habe gerade alle Ordner überprüft und festgestellt, dass 12 GB von diesem Ordner belegt werden:

/var/lib/docker/overlay2/

Was ist das und ist es möglich, ihn zu verkleinern, indem vielleicht nicht benötigte Dateien entfernt werden?

Vielleicht siehe vorheriger Thread
Discourse-Upgrade schlägt aufgrund von unzureichendem Speicherplatz auf 25G-Droplet fehl

Vielleicht auch dieser Thread

1 „Gefällt mir“

Vielleicht könnte jemand etwas sagen wie:

Ohne zusätzlichen Kontext war dieser anfängliche Kommentar für mich nicht sehr hilfreich. Ich hatte nicht erwartet, dass Discourse 18 GB Speicherplatz verbraucht, wenn andere Plattformen wie phpBB viel schlanker sind (ich bin kein Experte und habe keine Ahnung, warum eine Plattform schlanker ist als die andere, aber sie sind anscheinend unterschiedlich). Als Sie also sagten, dass 25 GB gerade genug Speicherplatz sind, ohne mehr Kontext hinzuzufügen, obwohl auf der offiziellen Installationsseite nichts davon steht, dass Discourse vielleicht N GB Speicherplatz benötigt, ging ich davon aus, dass die Standardeinstellung von Digital Ocean mit 1 GB RAM und 25 GB mehr als ausreichend war und vielleicht größere Communities mit nur 25 GB zu kämpfen hätten. Da meine noch am Anfang steht, sah ich den Speicherplatz nicht als Problem an.

Ich hoffe, das ergibt Sinn.

1 „Gefällt mir“