Problème lors de la mise à jour du forum Discourse


Bonjour à tous !
J’essayais de mettre à jour le forum discourse en utilisant le lien posté dans le panneau d’administration et j’ai obtenu cette erreur. Le forum entier a disparu. Que dois-je faire maintenant pour réinitialiser la mise à jour ? Merci beaucoup si quelqu’un peut m’aider. :sob:

1 « J'aime »

En fait, cela signifie que votre forum est en cours de mise à jour. - sauf si vous interrompez la mise à jour avant qu’elle ne soit terminée.

Essayez de visiter votre forum https://yoursite.com/latest.json. S’il renvoie quelque chose, attendez 10 minutes et voyez si le problème se résout de lui-même.

1 « J'aime »

Merci pour votre réponse, j’ai essayé la méthode que vous avez donnée et elle renvoie 502 Bad Gateway nginx.

Il semble que vous deviez exécuter ./launcher rebuild app

J’ai essayé ./launcher rebuild app et j’ai obtenu les messages d’erreur suivants :

FAILED

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

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

Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}

6e9e60bd6b6113cdcb001127fd2a24fe86f2a1658bf24500e5e2b720fd793510

** 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.

et j’ai fait défiler vers le haut et trouvé quelques journaux d’erreurs possibles :

1)200:M 25 Jun 2023 16:00:16.252 # Failed listening on port 6379 (TCP), aborting.

2)[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local without 'test development'`, and stop using this flag

3)Bundler::PathError: The path `/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/sprockets-f4d3dae71ef2` does not exist.

4)Bundler::InstallError: sass-embedded-1.63.6-x86_64-linux requires rubygems version >= 3.3.22, which is incompatible with the current version, 3.2.18

Quelqu’un d’autre a rencontré un problème similaire récemment, si cela peut aider ?

Merci beaucoup pour votre réponse, mais je suppose que ce n’est pas le même problème, mon serveur est en Allemagne. J’utilise l’image Docker de Discourse pour mon serveur. Que dois-je faire si ./launcher rebuild app ne fonctionne pas ?

1 « J'aime »

Ressemble à
La reconstruction a échoué en raison d’une incompatibilité de gemme Ruby

1 « J'aime »

Merci pour votre aide ! Oui, cela ressemble et j’ai essayé :

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

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

Dois-je faire quelque chose avant d’exécuter git pull ? Je faisais cela dans le /var/discourse de mon serveur.

Il semble possible que vous ayez une configuration inhabituelle - s’agit-il d’une installation standard ?

1 « J'aime »

J’ai lu la documentation du dernier programmeur pour moi et il est indiqué que de nombreuses choses sur le web fonctionnent derrière nginx et que discourse doit également être hébergé derrière nginx. L’installation standard ne fonctionne pas dans ma situation.

et voici comment il l’a dit dans le document et comment il a procédé :

Discourse s’exécute dans un conteneur Docker. Cependant, il nécessite un type de configuration spécial, pas via un fichier docker-compose.yml ou un fichier .conf.

Le dépôt GitHub discourse-project/ requis pour configurer et construire l’image Docker se trouve ici. Ignorez le programme agréable et juteux “discourse-setup” qu’ils fournissent, cela ne fonctionnera pas ici. Nous devons configurer l’application nous-mêmes.

  1. clonez discourse_docker vers /var/discourse : git clone https://github.com/discourse/discourse_docker.git /var/discourse
  2. allez dans le dossier et utilisez une configuration d’échantillon fournie : cd /var/discourse && cp samples/standalone.yml containers/app.yml
  3. puis éditez le fichier containers/app.yml (par exemple avec sudo nano)
  • Des modifications ont été apportées à la section d’hébergement, aux paramètres smtp pour les e-mails et - important - à la section expose afin qu’un seul port inutilisé soit exposé à l’extérieur
  • Pour exécuter discourse sur un chemin tel que “/forum”, d’autres modifications ont été nécessaires, comme décrit ici
  • Certains problèmes surviennent également avec l’authentification par e-mail :
    • L’e-mail qui envoie des e-mails est ici “l’e-mail du serveur”. Cependant, Discourse s’attend à ce que l’e-mail ait le même domaine que son hôte, à savoir “l’e-mail du serveur”.
      • Solution décrite ici
    • Utilisez également “DISCOURSE_SMTP_AUTHENTICATION: login” comme autre option d’environnement. Pourquoi aussi toujours . . .
  1. Ensuite, construisez l’application depuis le répertoire /var/discourse avec sudo ./launcher bootstrap app. Cela prend beaucoup de temps
  2. Ensuite, vous pourrez peut-être démarrer le conteneur discourse avec sudo ./launcher start app.
1 « J'aime »

Ce sont de bonnes notes.

Le git pull;./launcher rebuild app devrait fonctionner.

De quelle version mettez-vous à jour ?

Le système d’exploitation est-il obsolète ? (cat /etc/issue)

Le disque est-il plein ? (df - h)

1 « J'aime »

Merci pour votre réponse ! La version à partir de laquelle je mets à jour est la 2.8.0.beta6 et la dernière mise à jour date du 28.09.2021.

Après avoir exécuté cat /etc/issue, j’ai obtenu :
Debian GNU/Linux 9 \\n \\l

Et voici les informations selon ./discourse-doctor :

==================== INFORMATIONS MÉMOIRE ====================
RAM (Mo) : 4050

              total        used        free      shared  buff/cache   available
Mem:           3955         427        1152          63        2375        3182
Swap:             0           0           0

==================== VÉRIFICATION ESPACE DISQUE ====================
---------- Espace disque du système d'exploitation ----------
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        63G   27G   34G  45% /

==================== INFORMATIONS DISQUE ====================
Disque /dev/sda : 64 Gio, 68719476736 octets, 134217728 secteurs
Unités : secteurs de 1 * 512 = 512 octets
Taille du secteur (logique/physique) : 512 octets / 512 octets
Taille d'E/S (minimale/optimale) : 512 octets / 512 octets
Type de table de partitions : dos
Identifiant du disque : 0xc0b6220c

Device     Boot Start       End   Sectors Size Id Type
/dev/sda1        2048 134217727 134215680  64G 83 Linux

Vous pourriez ajouter le swap.

Voir également la mise à jour PostgreSQL 13.

Avez-vous reconstruit plus d’une fois ?

Voir aussi Debian | endoflife.date

Vous devez vraiment tout déplacer vers une nouvelle VM avec un système d’exploitation pris en charge. Vous devrez donc également mettre à niveau tout le reste de ce que vous avez en cours d’exécution.

1 « J'aime »

Bonjour Jammy, après de nombreux échecs d’installation, j’ai constaté que cela était dû à la limite de mémoire du serveur et au réseau. Je vous suggère d’utiliser un serveur avec 4 Go de mémoire et un accès normal à GitHub et Ruby.

Cette erreur me dérange - la voyez-vous toujours ? Le conteneur Docker devrait maintenant exécuter la version 3.2.0.

Mais si votre /var/discourse n’est pas un répertoire git, quelque chose a été fait différemment des instructions. Cela empêche une mise à jour et provoque l’inadéquation de la version ruby. Pour moi :

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

Nous voyons également un répertoire .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

Edit : mais c’est vrai, si vous utilisez un système d’exploitation trop ancien, vous avez du travail à faire pour installer discourse sur un nouveau système d’exploitation et récupérer votre sauvegarde, ainsi que pour faire toutes les choses supplémentaires qui pourraient être nécessaires à votre situation spécifique.

Si votre serveur fait plus que simplement exécuter discourse, c’est une complication supplémentaire. Vous pourriez avoir besoin d’une expertise locale.

3 « J'aime »

J’ai un échec comparable avec les gems ruby, etc.
Il s’agissait d’une nouvelle installation sur un nouveau serveur.

Merci à tous de votre aide, j’essaierai vos suggestions une par une pour résoudre le problème. Si j’ai des retours (bons ou mauvais), je les posterai sur le forum. Merci encore !

1 « J'aime »

J’ai installé avec succès la nouvelle version de Discourse. J’ai suivi les instructions du document ci-dessus et cela a fonctionné pour moi. Mais maintenant, j’ai du mal à restaurer à partir de la sauvegarde.
J’ai essayé Restaurer une sauvegarde à partir de la ligne de commande mais j’ai obtenu ce qui suit :

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.

Que dois-je faire maintenant ?

Votre fichier de sauvegarde présente un problème. Il est peut-être simplement tronqué.

1 « J'aime »