Dies ist auf einer Testmaschine. Ich habe dort zuvor Discourse ausgeführt – ich habe die Installation vermasselt und konnte nicht auf die neueste Version aktualisieren, was ich für meinen Fehler hielt. Nachdem ich das gesamte Discourse-Verzeichnis entfernt und Docker bereinigt hatte, versuchte ich eine komplett neue Installation, bevor ich ein Backup aus der Live-Datenbank importierte.
Seltsamerweise sehe ich immer noch die gleichen Probleme, die ich nicht lösen kann.
Hier ist die Fehlerausgabe. Habe discourse-doctor bereits ausprobiert, aber nichts Hilfreiches gefunden.
...
I, [2022-06-04T18:42:29.087446 #1] INFO -- : Terminating async processes
I, [2022-06-04T18:42:29.087672 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
I, [2022-06-04T18:42:29.087881 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
2022-06-04 18:42:29.088 UTC [42] LOG: received fast shutdown request
103:signal-handler (1654368149) Received SIGTERM scheduling shutdown...
2022-06-04 18:42:29.118 UTC [42] LOG: aborting any active transactions
2022-06-04 18:42:29.123 UTC [42] LOG: background worker "logical replication launcher" (PID 51) exited with exit code 1
2022-06-04 18:42:29.123 UTC [46] LOG: shutting down
103:M 04 Jun 2022 18:42:29.154 # User requested shutdown...
103:M 04 Jun 2022 18:42:29.154 * Saving the final RDB snapshot before exiting.
103:M 04 Jun 2022 18:42:29.159 * DB saved on disk
103:M 04 Jun 2022 18:42:29.159 # Redis is now ready to exit, bye bye...
2022-06-04 18:42:29.201 UTC [42] LOG: database system is shut down
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & bundle exec rake db:migrate' failed with return #<Process::Status: pid 1102 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'"]}
bootstrap failed with exit code 1
** 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.
69cb25658efb6f16e4479bb98a2d0278d72e56028865730841ac1efacc5b8d9d
==================== END REBUILD LOG ====================
Der Server selbst sollte in Ordnung sein – viel Speicherplatz, ansonsten genügend Ressourcen. Irgendwelche Ideen?
103:M 04 Jun 2022 18:40:07.369 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
Ich vermute, die Overcommit-Meldungen sind darauf zurückzuführen, dass Swap 0 ist? Seltsamerweise hat sich das nie geändert, seit dieser Server existiert…
Hmm… 16 GB RAM sind ziemlich viel, daher denkst du vielleicht, dass du keinen Swap benötigst. Aber ich würde sagen, es schadet nicht, etwas hinzuzufügen. Ohne deine Protokolle zu sehen, kann ich nicht sagen, dass das Problem Speichermangel ist. Aber wenn es so ist, könnte das Einstellen des Overcommit-Modus helfen, unabhängig davon, ob du Swap hast oder nicht.
Guter Fund, Ed. Danke. Es sieht so aus, als ob s3_bucket irgendwann zu s3_upload_bucket geändert wurde und ich habe diese in containers/app.yml, was das Problem verursacht zu haben scheint. Zumindest lief das Bauen jetzt gut, nachdem ich DISCOURSE_S3_BUCKET dort in DISCOURSE_S3_UPLOAD_BUCKET geändert habe.
Ich wünschte, solche Änderungen würden auch eine Prüfung im Build-Prozess einführen, um dies zu vermeiden – und viel Glück, wir testen unsere Updates immer auf einer Testmaschine.