Problema durante l'aggiornamento di Discourse Forum


Ciao a tutti!
Stavo cercando di aggiornare il forum di discourse utilizzando il link pubblicato nel pannello di amministrazione e ho ricevuto questo errore. L’intero forum è sparito. Cosa dovrei fare ora per resettare l’aggiornamento? Grazie mille se qualcuno potesse aiutarmi. :sob:

1 Mi Piace

In realtà significa che il tuo forum è in fase di aggiornamento. - a meno che tu non interrompa l’aggiornamento prima che finisca.

Prova a visitare il tuo forum https://yoursite.com/latest.json. Se restituisce qualcosa, attendi 10 minuti e vedi se il problema si risolve da solo.

1 Mi Piace

Grazie per la tua risposta, ho provato il metodo che mi hai dato e restituisce 502 Bad Gateway nginx.

Potrebbe essere necessario eseguire ./launcher rebuild app

Ho provato a eseguire ./launcher rebuild app e ho ricevuto i seguenti messaggi di errore:

FAILED

--------------------

Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' è fallito con ritorno #<Process::Status: pid 340 exit 5>

Posizione del fallimento: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec è fallito con i parametri {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}

6e9e60bd6b6113cdcb001127fd2a24fe86f2a1658bf24500e5e2b720fd793510

** FALLITO IL BOOTSTRAP ** si prega di scorrere verso l'alto e cercare messaggi di errore precedenti, potrebbero essercene più di uno.

./discourse-doctor può aiutare a diagnosticare il problema.

e scorrendo verso l’alto ho trovato alcuni possibili log di errore:

1)200:M 25 Jun 2023 16:00:16.252 # Impossibile ascoltare sulla porta 6379 (TCP), interruzione.

2)[DEPRECATED] Il flag `--deployment` è deprecato perché si basa sul fatto di essere ricordato tra le invocazioni di bundler, cosa che bundler non farà più nelle versioni future. Utilizzare invece `bundle config set --local deployment 'true'` e smettere di utilizzare questo flag.

[DEPRECATED] Il flag `--without` è deprecato perché si basa sul fatto di essere ricordato tra le invocazioni di bundler, cosa che bundler non farà più nelle versioni future. Utilizzare invece `bundle config set --local without 'test development'` e smettere di utilizzare questo flag.

3)Bundler::PathError: Il percorso `/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/sprockets-f4d3dae71ef2` non esiste.

4)Bundler::InstallError: sass-embedded-1.63.6-x86_64-linux richiede la versione di rubygems >= 3.3.22, che è incompatibile con la versione corrente, 3.2.18

Qualcun altro ha riscontrato un problema simile di recente, se questo può essere d’aiuto?

Grazie mille per la tua risposta, ma immagino che non sia lo stesso problema, il mio server è in Germania. Sto usando l’immagine Docker di Discourse per il mio server. Cosa devo fare se ./launcher rebuild app non funziona?

1 Mi Piace

Sembra simile a
Ricostruzione fallita a causa dell’incompatibilità delle gemme Ruby

1 Mi Piace

Grazie per il tuo aiuto! Sì, sembra simile e ho provato:

my server:/var/discourse**$ git pull

fatal: Not a git repository: ../.git/modules/discourse_docker

Devo fare qualcosa prima di eseguire git pull? Lo stavo facendo nel /var/discourse del mio server.

Sembra possibile che tu abbia una configurazione insolita: si tratta di un’installazione standard?

1 Mi Piace

Ho letto i documenti dell’ultimo programmatore per me e dice che molte cose sul web girano dietro nginx e anche discourse deve essere ospitato dietro nginx. L’installazione standard non funziona per la mia situazione.

e questo è come ha detto nel documento e come ha fatto:

Discourse gira in un container docker. Tuttavia, richiede un tipo speciale di configurazione, non tramite un file docker-compose.yml o un file .conf.

Il repository github discourse-project/ che richiede di configurare e costruire l’immagine docker si trova qui. Ignora il bel e succoso programma “discourse-setup” che forniscono, non funzionerà qui. Dobbiamo configurare l’app da soli.

  1. clona discourse_docker in /var/discourse: git clone https://github.com/discourse/discourse_docker.git /var/discourse
  2. vai nella cartella e usa una configurazione di esempio fornita: cd /var/discourse &amp;&amp; cp samples/standalone.yml containers/app.yml
  3. quindi modifica il file containers/app.yml (ad esempio con sudo nano)
  • Sono state apportate modifiche alla sezione hosting, alle impostazioni smtp per la posta e - importante - alla sezione expose in modo che solo una porta inutilizzata venga esposta all’esterno
  • Per eseguire discourse su un percorso come “/forum” sono state necessarie ulteriori modifiche come descritto qui
  • Si verificano anche alcuni problemi con l’autenticazione via email:
    • La posta che invia le email è qui “email del server”. Tuttavia, Discourse si aspetta che l’email abbia lo stesso dominio del suo host, ovvero “email del server”
      • Soluzione descritta qui
    • Usa anche “DISCOURSE_SMTP_AUTHENTICATION: login” come altra opzione env. Perché anche sempre . . .
  1. Quindi costruisci l’app dalla directory /var/discourse con sudo ./launcher bootstrap app. Questo richiede parecchio tempo
  2. Quindi potresti essere in grado di avviare il container discourse con sudo ./launcher start app.
1 Mi Piace

Queste sono buone note.

Il comando git pull;./launcher rebuild app dovrebbe funzionare.

Da quale versione stai aggiornando?

Il sistema operativo è obsoleto? (cat /etc/issue)

Il disco è pieno? (df - h)

1 Mi Piace

Grazie per la tua risposta! La versione da cui sto aggiornando è la 2.8.0.beta6 e l’ultimo aggiornamento è stato il 28.09.2021.

Dopo aver eseguito cat /etc/issue ho ottenuto:
Debian GNU/Linux 9 \\n \\l

E queste sono le informazioni secondo ./discourse-doctor

==================== INFORMAZIONI MEMORIA ====================
RAM (MB): 4050

              totale      usata      libera      condivisa  buff/cache   disponibile
Mem:           3955         427        1152          63        2375        3182
Swap:             0           0           0

==================== CONTROLLO SPAZIO SU DISCO ====================
---------- Spazio su disco del sistema operativo ----------
Filesystem      Dimensione  Usata  Disponibile Uso% Montato su
/dev/sda1        63G   27G   34G  45% /

==================== INFORMAZIONI DISCO ====================
Disco /dev/sda: 64 GiB, 68719476736 byte, 134217728 settori
Unità: settori di 1 * 512 = 512 byte
Dimensione settore (logica/fisica): 512 byte / 512 byte
Dimensione I/O (minima/ottimale): 512 byte / 512 byte
Tipo di etichetta disco: dos
Identificativo disco: 0xc0b6220c

Device     Boot Inizio       Fine    Settori Dimensione Id Tipo
/dev/sda1        2048 134217727 134215680  64G 83 Linux

Potresti aggiungere lo swap.

Vedi anche aggiornamento PostgreSQL 13.

Hai ricompilato più di una volta?

Vedi anche Debian | endoflife.date

Devi davvero spostare tutto su una nuova VM con un sistema operativo supportato. Quindi dovrai anche aggiornare qualsiasi altra cosa tu abbia in esecuzione.

1 Mi Piace

Ciao Jammy, dopo vari tentativi di installazione falliti, ho scoperto che la causa è il limite di memoria del server e la rete. Ti suggerisco di utilizzare un server con 4 GB di RAM e un accesso normale a GitHub e Ruby.

Questo errore mi infastidisce: lo vedi ancora? Il container Docker dovrebbe ora eseguire la versione 3.2.0.

Ma se il tuo /var/discourse non è una directory git, è stato fatto qualcosa di diverso dalle istruzioni. Impedisce un aggiornamento e causa l’incompatibilità della versione ruby. Per me:

/var/discourse# git status
On branch main
Your branch is up to date with 'origin/main'.

Vediamo anche una directory .git:

# ls -a /var/discourse/
.     .github     README.md  cids              discourse-setup  launcher     scripts    tests
..    .gitignore  bin        containers        image            rebuild.log  shared
.git  LICENSE     c          discourse-doctor  index.html       samples      templates

Modifica: ma è vero, se ti trovi su un sistema operativo troppo vecchio, hai del lavoro da fare, per installare discourse su un nuovo sistema operativo e recuperare il tuo backup, e anche per fare tutte le cose extra che potrebbero essere necessarie per la tua situazione specifica.

Se il tuo server sta facendo più cose oltre a eseguire discourse, questa è una complicazione aggiuntiva. Potresti aver bisogno di competenze locali.

3 Mi Piace

Ho un fallimento comparabile con ruby gems ecc.
È stata un’installazione pulita su un nuovo server.

Grazie ragazzi per l’aiuto, proverò i vostri suggerimenti uno per uno per risolvere il problema. Se ci saranno feedback (positivi o negativi), li posterò nuovamente nel forum. Grazie ancora!

1 Mi Piace

Ho installato correttamente la nuova versione di Discourse. Ho seguito le istruzioni nel documento sopra e ha funzionato per me. Ma ora ho problemi a ripristinare dal backup.
Ho provato Ripristinare un backup dalla riga di comando ma ho ottenuto quanto segue:

root@my_server:/var/www/discourse# discourse restore my_server-2023-06-20-033008-v20210922064213.tar.gz
Starting restore: my_server-2023-06-20-033008-v20210922064213.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2023-06-29-113408 exists...
Copying archive to tmp directory...
Unzipping archive, this may take a while...
EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
/var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:33:in `execute_command'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:78:in `decompress_archive'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:23:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Trying to rollback...
There was no need to rollback
Cleaning stuff up...
Removing tmp '/var/www/discourse/tmp/restores/default/2023-06-29-113408' directory...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.

Cosa dovrei fare ora?

C’è qualcosa che non va nel tuo file di backup. Potrebbe essere semplicemente troncato.

1 Mi Piace