Discourse si blocca e ripristino discourse FALLITO

Eseguo il comando ./launcher rebuild app


redis is now ready to exit, bye bye ... blocca Discourse - 40 minuti, stop con Ctrl + C

È in caricamento da sempre. Di conseguenza non abbiamo creato un nuovo container; potreste spiegare quali log in Discourse possono aiutarci a individuare la causa?

Potrebbe trattarsi di un problema di allocazione delle risorse?

Ci sono altri siti web o servizi ospitati su questo server? Quanta RAM/CPU è disponibile sul tuo server?

risorse del server

È normale.

Questo non lo è. In genere, il nuovo container viene avviato meno di un minuto dopo quel messaggio.

E hai provato più volte con lo stesso risultato?

sì, diverse volte, con lo stesso risultato

Ero su un branch 3d050bdaa31633a954758894629c0eb9fea537d0

Voglio aggiornare a fe71c43c57c0248a8264245cb6ff0dc114da335a

ma Discourse si blocca!!

production.log

Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH) sottoscrizione fallita, riconnessione tra 1 secondo. Stack di chiamata ["/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'"]
Eccezione del job: Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH)

Eccezione del job: Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH)

Eccezione del job: Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH)

Eccezione del job: Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH)

Eccezione del job: Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH)

Eccezione del job: Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH)

Eccezione del job: Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH)

Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH) sottoscrizione fallita, riconnessione tra 1 secondo. Stack di chiamata ["/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'"]
Eccezione del job: Errore di connessione a Redis su localhost:6379 (Errno::ENETUNREACH)

Creazione dello scope :visible_groups. Sovrascrittura del metodo esistente Group.visible_groups.
Creazione dello scope :visible. Sovrascrittura del metodo esistente Notification.visible.
Creazione dello scope :public_posts. Sovrascrittura del metodo esistente Post.public_posts.
Creazione dello scope :private_posts. Sovrascrittura del metodo esistente Post.private_posts.
Creazione dello scope :open. Sovrascrittura del metodo esistente Poll.open.
Migrazione a CreateDiscourseVotingCategorySettings (20200727220143)
Migrazione a CreateDiscourseVotingVotes (20200728222920)
Migrazione a CreateDiscourseVotingTopicVoteCount (20200729042607)
Creazione dello scope :visible_groups. Sovrascrittura del metodo esistente Group.visible_groups.
Creazione dello scope :visible. Sovrascrittura del metodo esistente Notification.visible.
Creazione dello scope :public_posts. Sovrascrittura del metodo esistente Post.public_posts.
Creazione dello scope :private_posts. Sovrascrittura del metodo esistente Post.private_posts.
Creazione dello scope :open. Sovrascrittura del metodo esistente Poll.open.
Creazione dello scope :visible_groups. Sovrascrittura del metodo esistente Group.visible_groups.
Creazione dello scope :visible. Sovrascrittura del metodo esistente Notification.visible.
Creazione dello scope :public_posts. Sovrascrittura del metodo esistente Post.public_posts.
Creazione dello scope :private_posts. Sovrascrittura del metodo esistente Post.private_posts.
Creazione dello scope :open. Sovrascrittura del metodo esistente Poll.open.

Ubuntu 14.04 sembra essere piuttosto vecchio; nelle ultime settimane ho visto alcuni post in cui è stato segnalato un problema:
https://meta.discourse.org/search?q=14.04%20order%3Alatest

forse un aggiornamento di una dipendenza tra maggio e ora ha rotto qualcosa :roll_eyes:

Grazie per le risposte

Ho un nuovo server con Ubuntu 20.04.1 LTS e Docker installato.

Come posso spostare il mio vecchio prod-forum su questo server?
Potreste suggerirmi una guida passo passo?

Costruisci da zero seguendo la guida standard. Copia app.yml. Ricompila. Importa il file di backup di Discourse dal primo server. Fatto.

(Ah, e una piccola questione di ridirezione dell’IP per il dominio!)

Bene, ma la creazione di backup tramite il pannello di amministrazione non funziona per noi))

Trasferimento del container Docker

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

Si verificano problemi in questo passaggio: NoMethodError on docker run - #8 by Dev_Work

Non hai già dei backup in sede esterna?

Ho bisogno di una copia con dati aggiornati (nessun backup recente)

Si verificano errori durante il ripristino di un backup su un nuovo server?

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

Ciao @Dev_Work

Mi dispiace sentire che stai riscontrando problemi con questo.

Quindi, per ricapitolare:

  • Hai eseguito un backup manuale completo del tuo sito e tale backup è:
discourse-2020-08-24-103334-v20200811004537.tar.gz 
  • Poi hai installato Discourse da zero utilizzando il metodo standard:
https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
  • Hai fatto tutto questo su un nuovo server Ubuntu 20.04.1 LTS con Docker installato e testato.

  • Infine, hai ripristinato manualmente il backup sopra indicato sul nuovo server, giusto?

È corretto? E ti trovi in questo punto della situazione?

Grazie per la risposta.
Sì, è corretto, si presenta un problema sulla nuova versione di Ubuntu 20.04.1 LTS

Hai creato un amministratore con il nome utente “pavel_BLANKEDOUT” prima di tentare il processo di ripristino manuale di Discourse?

Immagino che questo non sia il problema, chiedo solo per essere esaustivo, dato che l’utente “pavel_BLANKEDOUT” viene menzionato nel tuo errore di chiave duplicata.

No, non è stato creato.

L’utente amministratore non è presente nel database di backup.

Ciao @Dev_Work

E il tuo sito originale, dove il backup che stai utilizzando è completamente down?

Oppure puoi accedere al contenitore del tuo vecchio sito e verificare nel database di Discourse se c’è un indice corrotto?

Inoltre, la tua vecchia istanza rotta stava eseguendo quale versione di PostgreSQL? 10 o 12?

Sembra il mio stesso problema, Search results for 'could not create unique index category:6' - Discourse Meta

pianto :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>'

Vecchio server utilizzava PostgreSQL 12

Vecchio sito e server funzionanti

Posso accedere al container del vecchio sito (come verificare un indice danneggiato?)