Discourse hängt und Discourse-Wiederherstellung FEHLGESCHLAGEN

Ich führe den Befehl ./launcher rebuild app aus.

redis is now ready to exit, bye bye ...

Dies führt dazu, dass Discourse 40 Minuten lang einfriert. Ich muss mit Strg+C abbrechen.

Es wird ständig geladen. Als Ergebnis wurde kein neuer Container erstellt. Könntest du erklären, welche Art von Logs in Discourse uns helfen könnten, die Ursache zu finden?

Könnte dies ein Problem mit der Ressourcenallokation sein?

Werden auf diesem Server noch andere Websites oder Dienste gehostet? Wie viel RAM/CPU steht auf Ihrem Server zur Verfügung?

Server-Ressourcen

Das ist normal.

Das ist es nicht. In der Regel wird der neue Container weniger als eine Minute nach dieser Meldung gestartet.

Und du hast das mehr als einmal mit demselben Ergebnis versucht?

Ja, mehrmals, mit demselben Ergebnis.

War auf einem Branch 3d050bdaa31633a954758894629c0eb9fea537d0

möchte auf fe71c43c57c0248a8264245cb6ff0dc114da335a upgraden

und Discourse hängt sich auf !!

production.log

Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH) Abonnement fehlgeschlagen, erneuter Verbindungsversuch in 1 Sekunde. Aufrufstack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:363:in `rescue in establish_connection'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:344:in `establish_connection'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:106:in `block in connect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:307:in `with_reconnect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:105:in `connect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:382:in `ensure_connected'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:231:in `block in process'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:320:in `logging'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:230:in `process'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:139:in `block in call_loop'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:293:in `with_socket_timeout'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:138:in `call_loop'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/subscribe.rb:44:in `subscription'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/subscribe.rb:13:in `subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:3468:in `_subscription'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:2301:in `block in subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:51:in `block in synchronize'", "/usr/local/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:51:in `synchronize'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:2300:in `subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus/backends/redis.rb:287:in `global_subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus.rb:741:in `global_subscribe_thread'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus.rb:689:in `block in new_subscriber_thread'"]
Job-Ausnahme: Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH)

Job-Ausnahme: Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH)

Job-Ausnahme: Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH)

Job-Ausnahme: Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH)

Job-Ausnahme: Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH)

Job-Ausnahme: Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH)

Job-Ausnahme: Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH)

Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH) Abonnement fehlgeschlagen, erneuter Verbindungsversuch in 1 Sekunde. Aufrufstack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:363:in `rescue in establish_connection'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:344:in `establish_connection'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:106:in `block in connect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:307:in `with_reconnect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:105:in `connect'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:382:in `ensure_connected'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:231:in `block in process'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:320:in `logging'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:230:in `process'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis/client.rb:125:in `call'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:915:in `block in get'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:51:in `block in synchronize'", "/usr/local/lib/ruby/2.6.0/monitor.rb:235:in `mon_synchronize'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:51:in `synchronize'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.4/lib/redis.rb:914:in `get'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus/backends/redis.rb:360:in `process_global_backlog'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus/backends/redis.rb:271:in `block in global_subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus/backends/redis.rb:284:in `global_subscribe'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus.rb:741:in `global_subscribe_thread'", "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-3.2.0/lib/message_bus.rb:689:in `block in new_subscriber_thread'"]
Job-Ausnahme: Fehler beim Verbinden mit Redis auf localhost:6379 (Errno::ENETUNREACH)

Erstellen des Scopes :visible_groups. Überschreiben der vorhandenen Methode Group.visible_groups.
Erstellen des Scopes :visible. Überschreiben der vorhandenen Methode Notification.visible.
Erstellen des Scopes :public_posts. Überschreiben der vorhandenen Methode Post.public_posts.
Erstellen des Scopes :private_posts. Überschreiben der vorhandenen Methode Post.private_posts.
Erstellen des Scopes :open. Überschreiben der vorhandenen Methode Poll.open.
Migration zu CreateDiscourseVotingCategorySettings (20200727220143)
Migration zu CreateDiscourseVotingVotes (20200728222920)
Migration zu CreateDiscourseVotingTopicVoteCount (20200729042607)
Erstellen des Scopes :visible_groups. Überschreiben der vorhandenen Methode Group.visible_groups.
Erstellen des Scopes :visible. Überschreiben der vorhandenen Methode Notification.visible.
Erstellen des Scopes :public_posts. Überschreiben der vorhandenen Methode Post.public_posts.
Erstellen des Scopes :private_posts. Überschreiben der vorhandenen Methode Post.private_posts.
Erstellen des Scopes :open. Überschreiben der vorhandenen Methode Poll.open.
Erstellen des Scopes :visible_groups. Überschreiben der vorhandenen Methode Group.visible_groups.
Erstellen des Scopes :visible. Überschreiben der vorhandenen Methode Notification.visible.
Erstellen des Scopes :public_posts. Überschreiben der vorhandenen Methode Post.public_posts.
Erstellen des Scopes :private_posts. Überschreiben der vorhandenen Methode Post.private_posts.
Erstellen des Scopes :open. Überschreiben der vorhandenen Methode Poll.open.

Ubuntu 14.04 scheint ziemlich alt zu sein. In den letzten Wochen habe ich einige Beiträge gesehen, bei denen es Probleme gab:
https://meta.discourse.org/search?q=14.04%20order%3Alatest

Vielleicht hat eine Abhängigkeitsänderung zwischen Mai und jetzt etwas kaputt gemacht :roll_eyes:

Vielen Dank für die Antworten.

Ich habe einen neuen Server mit Ubuntu 20.04.1 LTS und Docker darauf.

Wie kann ich mein altes prod-forum auf diesen Server migrieren?
Könntet ihr mir schrittweise Anleitungen dafür vorschlagen?

Von Grund auf mit dem normalen Leitfaden erstellen. app.yml kopieren. Neu aufbauen. Discourse-Backup-Datei vom ersten Server importieren. Fertig.

(Übrigens: Eine kleine Angelegenheit der IP-Umzuordnung für die Domain!)

Cool, aber das Erstellen von Backups über das Admin-Panel funktioniert bei uns nicht :slight_smile:

Docker-Container übertragen

docker ps -a

docker commit c559bec6f29a local_discourse/app
docker save local_discourse/app > /tmp/local_discourse_app.tar.gz
scp /tmp/local_discourse_app.tar.gz root@my-new-server:/tmp/
---
docker load < /tmp/local_discourse_app.tar.gz
docker run local_discourse/app

Probleme treten bei diesem Schritt auf – NoMethodError on docker run - #8 by Dev_Work

Haben Sie keine bestehenden Backups an einem externen Standort?

Ich benötige eine Kopie mit frischen Daten (keine frischen Backups)

Treten beim Wiederherstellen eines Backups auf einem neuen Server Fehler auf?

./launcher enter app
discourse restore discourse-2020-08-24-103334-v20200811004537.tar.gz

Hey @Dev_Work

Es tut uns leid zu hören, dass du Probleme damit hast.

Zur Übersicht:

  • Du hast ein vollständiges manuelles Backup deiner Seite erstellt, und dieses Backup lautet:
discourse-2020-08-24-103334-v20200811004537.tar.gz
  • Anschließend hast du Discourse mit der Standardmethode komplett neu installiert:
https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
  • Dies hast du auf einem brandneuen Ubuntu 20.04.1 LTS-Server mit installiertem und getestetem Docker durchgeführt.

  • Dann hast du manuell das oben genannte Backup auf dem neuen Server wiederhergestellt, richtig?

Ist das korrekt, und befindest du dich hiermit genau an diesem Punkt in der Angelegenheit?

Danke für die Antwort.
Ja, das stimmt, es tritt ein Problem bei dem neuen Ubuntu 20.04.1 LTS auf.

Haben Sie vor dem Versuch, den manuellen Discourse-Wiederherstellungsprozess durchzuführen, einen Administrator mit dem Benutzernamen „pavel_BLANKEDOUT

Nein, wurde nicht erstellt.

Benutzer-Admin, der nicht in der Sicherungsdatenbank enthalten ist.

Hey @Dev_Work

Und was ist mit deiner ursprünglichen Seite, auf der das Backup, das du verwendest, komplett ausgefallen ist?

Oder kannst du den Container deiner alten Seite betreten und die Discourse-Datenbank auf einen beschädigten Index überprüfen?

Außerdem: Welche Version von PostgreSQL lief auf deiner alten, defekten Instanz? 10 oder 12?

Das klingt nach meinem Problem, Search results for 'could not create unique index category:6' - Discourse Meta

cry :frowning:

ERROR:  could not create unique index "index_user_emails_on_email"
DETAIL:  Key (lower(email::text))=(andrii_test@local.com) is duplicated.
EXCEPTION: psql failed: DETAIL:  Key (lower(email::text))=(andrii_test@local.com) is duplicated.
/var/www/discourse/lib/backup_restore/database_restorer.rb:95:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:49:in `run'
script/discourse:143:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/base.rb:485:in `start'
script/discourse:284:in `<top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'

Alter Server verwendete PostgreSQL 12

Alte Website und Server funktionieren

Ich kann den Container der alten Website betreten (wie überprüfe ich einen beschädigten Index?)