La mise à jour de Discourse échoue

J’ai essayé de mettre à jour Discourse vers la dernière version aujourd’hui. Cela a échoué. Voici le journal :

********************************************************
*** Veuillez patienter, les prochaines étapes peuvent prendre un certain temps ***
********************************************************
Cyclage de Unicorn, pour libérer de la mémoire
Redémarrage de unicorn pid : 548
Attente du rechargement de Unicorn.
Attente du rechargement de Unicorn..
Attente du rechargement de Unicorn...
Attente du rechargement de Unicorn....
Attente du rechargement de Unicorn.....
Attente du rechargement de Unicorn......
Attente du rechargement de Unicorn.......
Attente du rechargement de Unicorn........
Attente du rechargement de Unicorn.........
Arrêt de 3 workers Unicorn, pour libérer de la mémoire
Arrêt de la file d'attente des tâches pour récupérer de la mémoire, pid maître est 2943724
$ cd /var/www/discourse && git fetch --tags --prune-tags --prune --force
$ cd /var/www/discourse && git reset --hard HEAD@{upstream}
HEAD est maintenant à be4f1e335 PERF: Cache `hostname` dans `DiscourseLogstashLogger` (#27442)
$ bundle install --retry 3 --jobs 4
Bundle complète ! 141 dépendances de Gemfile, 174 gems installées maintenant.
Les gems dans les groupes 'development' et 'test' n'ont pas été installées.
Les gems groupées sont installées dans `./vendor/bundle`
1 gem installée dont vous dépendez directement recherche un financement.
  Exécutez `bundle fund` pour plus de détails
$ yarn install
yarn install v1.22.19
[1/5] Validation de package.json...
[2/5] Résolution des paquets...
warning Le champ de résolution "unset-value@2.0.1" est incompatible avec la version demandée "unset-value@^1.0.0"
[3/5] Récupération des paquets...
error ember-template-lint@6.0.0 : Le moteur "node" est incompatible avec ce module. Version attendue " ^18.18.0 || ^20.9.0 || >=21.1.0". Obtenu "18.16.0"
error Module incompatible trouvé.
info Visitez https://yarnpkg.com/en/docs/cli/install pour la documentation sur cette commande.
Docker Manager : ÉCHEC DE LA MISE À NIVEAU
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:210:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:101:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.3.1/lib/thor.rb:527:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.8.4/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb:37:in `require'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb:37:in `require'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
Démarrage de 3 workers Unicorn qui ont été arrêtés initialement

Des idées ?

Vous devriez effectuer une mise à niveau en ligne de commande.

./launcher rebuild app

2 « J'aime »

Salut Jay,

J’ai fait ça. J’ai aussi essayé de faire ./launcher start app.

Mais j’ai eu une erreur différente. Cette fois, c’est une erreur de passerelle défectueuse de Nginx. J’ai remarqué que Discourse se plaignait d’un manque d’espace de stockage, mais j’ai libéré de l’espace.

J’ai joint quelques informations.

Avez-vous effectué un redémarrage ou une reconstruction après avoir libéré de l’espace ?

La mauvaise passerelle est attendue pendant une minute ou quelques minutes après le démarrage du conteneur. Mais il se peut que vous ayez migré la base de données et que l’ancien conteneur ne fonctionne plus.

1 « J'aime »

Alors, chaque fois que j’exécute ./launcher rebuild app ou ./launcher start app ou ./launcher restart app, je suis toujours accueilli par la question agaçante sur le nettoyage de l’espace. J’appuie sur Y à chaque fois.

D’accord, j’ai libéré de l’espace manuellement. Apparemment, il y a des fichiers inutiles dans le répertoire snap.

Ensuite, j’ai retenté le processus ./launcher restart app. Cette fois, l’erreur a disparu.

Mais j’obtiens toujours l’erreur 502 Bad Gateway.

1 « J'aime »

Si vous obtenez toujours cela après que le site soit en ligne depuis quelques minutes, consultez /var/discourse/shared/standalone/logs/rails/production.log ainsi que .../logs/var-log/nginx/*.

Il s’agit donc d’un problème PostgreSQL. Comment puis-je résoudre cela ? Je veux dire, nous ne démarrons pas le serveur PostgreSQL manuellement, n’est-ce pas ?

Les fichiers à l’intérieur de postgres_data appartiennent à mon nom d’utilisateur sur le serveur et le groupe est crontab.

Pourquoi ?

N’est-ce pas une installation standard ?

J’ai utilisé l’installation standard.

Ensuite, le processus de mise à jour (via le tableau de bord d’administration) a échoué. J’ai donc dû me connecter au serveur via SSH et libérer de l’espace. Lorsque j’ai exécuté ./launcher rebuild (ou restart) app, le processus n’a pas généré d’erreur, mais j’ai obtenu une erreur 502 Bad Gateway.

Donc, à qui devrait appartenir postgres_data ? Root ?

Tout ceci doit être installé en tant que root.

J’ai exécuté ./launcher rebuild (ou restart) app en tant que root. J’ai d’abord fait sudo su. Quoi qu’il en soit, je ne pense pas que vous puissiez exécuter launcher avec un utilisateur normal (Docker se plaindrait).

D’accord, j’ai enfin résolu ces problèmes.

  1. J’ai redimensionné le stockage pour laisser de la place à Discord. J’ai créé un snapshot de la VM Discord dans GCP et l’ai restauré avec un stockage plus grand.
  2. J’ai modifié le contenu du fichier containers/app.yml :

De

templates:
  - "templates/postgres.template.yml"

À

templates:
  - "templates/postgres.13.template.yml"

Ensuite, j’ai exécuté ./launcher rebuild app sans rencontrer d’autres problèmes.

Merci !

2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.