J’ai tenté de mettre à niveau Discourse, mais j’ai obtenu ce message :
Désolé, une erreur est survenue lors de la mise à niveau de Discourse. Veuillez vérifier les journaux ci-dessous.
********************************************************
*** Veuillez patienter, les prochaines étapes peuvent prendre un certain temps ***
********************************************************
Redémarrage d'Unicorn pour libérer de la mémoire
Redémarrage du processus Unicorn : 663
En attente du rechargement d'Unicorn.
En attente du rechargement d'Unicorn..
En attente du rechargement d'Unicorn...
En attente du rechargement d'Unicorn....
Utilisation de oj 3.10.15
Utilisation de optimist 3.0.1
Utilisation de pg 1.2.3
Utilisation de r2 0.2.7
Utilisation de raindrops 0.19.1
Utilisation de rchardet 1.8.0
Utilisation de rinku 2.0.6
Utilisation de rotp 6.2.0
Utilisation de rqrcode_core 0.1.2
Utilisation de rtlit 0.0.5
Utilisation de rubyzip 2.3.0
Utilisation de tilt 2.0.10
Utilisation de sshkey 2.0.0
Utilisation de stackprof 0.2.16
Utilisation de unf_ext 0.0.7.7
Utilisation de xorcist 1.1.2
Utilisation de i18n 1.8.5
Utilisation de tzinfo 1.2.7
Utilisation de nokogiri 1.10.10
Utilisation de rack-test 1.1.0
Utilisation de mail 2.7.1
Utilisation de addressable 2.7.0
Utilisation de aws-sigv4 1.2.0
Utilisation de barber 0.12.2
Utilisation de cose 1.2.0
Utilisation de ember-data-source 3.0.2
Utilisation de sprockets 3.7.2
Utilisation de discourse_image_optim 0.26.2
Utilisation de faraday 1.1.0
Utilisation de request_store 1.5.0
Utilisation de message_bus 3.3.4
Utilisation de pry 0.13.1
Utilisation de rack-mini-profiler 2.2.0
Utilisation de rack-protection 2.1.0
Utilisation de uglifier 4.2.0
Utilisation de logstash-logger 0.26.1
Utilisation de mini_racer 0.3.1
Utilisation de sidekiq 6.1.2
Utilisation de mini_suffix 0.3.0
Utilisation de nokogumbo 2.0.2
Utilisation de omniauth 1.9.1
Utilisation de puma 5.0.4
Utilisation de rbtrace 0.4.14
Utilisation de redis-namespace 1.8.0
Utilisation de rqrcode 1.1.2
Utilisation de ruby-readability 0.7.0
Utilisation de sassc 2.0.1
Utilisation de unf 0.1.4
Utilisation de unicorn 5.7.0
Utilisation de webpush 1.0.0
Utilisation de activesupport 6.0.3.3
Utilisation de loofah 2.7.0
Récupération de bootsnap 1.5.0
Utilisation de ember-handlebars-template 0.8.0
Utilisation de mini_scheduler 0.12.3
Utilisation de oauth2 1.4.4
Utilisation de omniauth-oauth 1.1.0
Utilisation de sanitize 5.2.1
Utilisation de pry-byebug 3.9.0
Utilisation de pry-rails 0.3.9
Utilisation de rails-dom-testing 2.0.3
Utilisation de rails-html-sanitizer 1.3.0
Utilisation de globalid 0.4.2
Utilisation de activemodel 6.0.3.3
Utilisation de aws-sdk-core 3.99.1
Utilisation de css_parser 1.7.1
Utilisation de actionview 6.0.3.3
Utilisation de activejob 6.0.3.3
Utilisation de active_model_serializers 0.8.4
Utilisation de activerecord 6.0.3.3
Utilisation de aws-sdk-kms 1.31.0
Utilisation de aws-sdk-sns 1.25.1
Utilisation de omniauth-oauth2 1.7.0
Utilisation de omniauth-twitter 1.4.0
Utilisation de onebox 2.1.4
Utilisation de actionpack 6.0.3.3
Utilisation de actionview_precompiler 0.2.3
Utilisation de aws-sdk-s3 1.66.0
Utilisation de omniauth-facebook 8.0.0
Utilisation de omniauth-github 1.4.0
Utilisation de omniauth-google-oauth2 0.8.0
Utilisation de seed-fu 2.3.9
Utilisation de actionmailer 6.0.3.3
Utilisation de railties 6.0.3.3
Utilisation de sprockets-rails 3.2.2
Utilisation de jquery-rails 4.4.0
Utilisation de lograge 0.11.2
Utilisation de rails_failover 0.5.7
Utilisation de rails_multisite 2.5.0
Utilisation de sassc-rails 2.1.2
Utilisation de discourse-ember-rails 0.18.6
Installation de bootsnap 1.5.0 avec des extensions natives
Bundling terminé ! 123 dépendances du fichier Gemfile, 161 gems désormais installées.
Les gems des groupes test et development n'ont pas été installées.
Les gems bundled sont installées dans `./vendor/bundle`
$ bundle exec rake plugin:pull_compatible_all
docker_manager est déjà à la dernière version compatible
discourse-data-explorer est déjà à la dernière version compatible
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
Le migrateur multisite s'exécute avec 1 thread
Migration du site par défaut
== 20201027110546 CreateLinkedTopics : migration en cours ===============================
-- création de la table :linked_topics
-\u003e 0.0524s
-- ajout d'index sur :linked_topics, [:topic_id, :original_topic_id], {:unique=\u003etrue}
-\u003e 0.0066s
-- ajout d'index sur :linked_topics, [:topic_id, :sequence], {:unique=\u003etrue}
-\u003e 0.0045s
== 20201027110546 CreateLinkedTopics : migration terminée (0.0676s) ======================
Séeding du site par défaut
[...]"
Compression terminée pour locales/ko-0c530732e52b234cd31ea1959ec4b5127cfcc2cb5b076d4999abfa0530e5bba5.js : 0.11 secondes
8625116.65540771 Compression en cours : application-1e74fe54a11795d2a94b9b90ac1f18294214d956e95b882737a05319d5d11ff9.js
uglifyjs '/var/www/discourse/public/assets/_application-1e74fe54a11795d2a94b9b90ac1f18294214d956e95b882737a05319d5d11ff9.js' -m -c -o '/var/www/discourse/public/assets/application-1e74fe54a11795d2a94b9b90ac1f18294214d956e95b882737a05319d5d11ff9.js' --source-map "base='/var/www/discourse/public/assets',root='/assets',url='/assets/application-1e74fe54a11795d2a94b9b90ac1f18294214d956e95b882737a05319d5d11ff9.js.map'"
Tué
Docker Manager : ÉCHEC DE LA MISE À NIVEAU
#\u003cRuntimeError: RuntimeError\u003e
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:178:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:86:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in \u003cmain\u003e'
/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 `\u003cmain\u003e'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/commands/runner/runner_command.rb:42:in `perform'
/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/railties-6.0.3.3/lib/rails/command/base.rb:69:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/command.rb:46:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/commands.rb:18:in `\u003cmain\u003e'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
bin/rails:17:in `\u003cmain\u003e'
Démarrage de 1 travailleur(s) Unicorn qui avait(ont) été arrêté(s) initialement
Votre machine dispose-t-elle de RAM et d’espace d’échange (swap) suffisants ? Les commandes free ou top peuvent vous l’indiquer. Vous pouvez également essayer dmesg | egrep -3i kill
pour vérifier s’il existe des informations sur un processus ayant été tué. Je soupçonne un manque de mémoire (le tueur OOM).
Well, oddly enough, my upgrade just failed the same way! I had successfully updated docker manager and data explorer, and got the ‘killed’ failure at the same step, running uglifyjs on the same file.
I have a Digital Ocean droplet with 1G RAM and 2G swap, and a relatively small forum (a backup is 700MByte)
Au prix d’un peu de temps d’arrêt, j’ai réussi à effectuer la mise à jour en appliquant la solution de contournement habituelle :
./launcher rebuild app
Cependant, étant donné que 1 Go de RAM + 2 Go d’espace d’échange constituent une configuration minimale recommandée pour un petit forum, il semble qu’il y ait un problème.
Pendant la reconstruction, l’utilisation de la mémoire virtuelle n’était pas trop mauvaise - le point le plus bas, lors de la même opération uglifyjs, était :
# free
total used free shared buff/cache available
Mem: 1009264 380204 537900 5712 91160 510756
Swap: 2097144 498540 1598604
Cela est probablement lié aux modifications du gestionnaire Docker visant à maintenir le site en ligne plus longtemps pendant la mise à niveau, ce qui a augmenté les besoins en RAM pendant la mise à niveau.
La reconstruction du conteneur fonctionnera toujours car elle met temporairement le site hors ligne, lui permettant ainsi d’accéder à la RAM maximale.