Me actualizo cada mes, siempre primero en algunos sistemas de desarrollo y luego en producción.
Durante el ciclo de este mes, la actualización falló en el primer sistema de desarrollo. docker_manager se actualizó correctamente, pero la actualización de Discourse falló con:
Lo sentimos, hubo un error al actualizar Discourse. Por favor, revise los registros a continuación.
La aplicación Discourse está completamente caída (muestra la página de error 500 “Oops”).
Esto es lo que contiene el registro en pantalla:
********************************************************
*** Por favor, sea paciente, los próximos pasos pueden tardar un tiempo ***
********************************************************
Cambiando Unicorn, para liberar memoria
Reiniciando unicorn pid: 50
Esperando a que Unicorn se recargue.
Esperando a que Unicorn se recargue..
Esperando a que Unicorn se recargue...
Esperando a que Unicorn se recargue....
Esperando a que Unicorn se recargue.....
Esperando a que Unicorn se recargue......
Esperando a que Unicorn se recargue.......
Esperando a que Unicorn se recargue........
Esperando a que Unicorn se recargue.........
Esperando a que Unicorn se recargue..........
Esperando a que Unicorn se recargue...........
Deteniendo 7 trabajadores de Unicorn, para liberar memoria
Deteniendo la cola de trabajos para recuperar memoria, el pid maestro es 4069
$ cd /var/www/discourse && git fetch --tags --force && git reset --hard HEAD@{upstream}
From https://github.com/discourse/discourse
t [actualización de etiqueta] latest-release -> latest-release
* [nueva etiqueta] v2.8.14 -> v2.8.14
* [nueva etiqueta] v3.0.0 -> v3.0.0
HEAD está ahora en 666536cbd1 DEV: Prefiere \A y \z sobre ^ y $ en regexes (#19936)
$ bundle install --deployment --jobs 4 --without test development
[OBSOLETO] El indicador `--deployment` está obsoleto porque depende de ser recordado en invocaciones de bundler, lo cual bundler ya no hará en versiones futuras. En su lugar, use `bundle config set --local deployment 'true'`, y deje de usar este indicador.
[OBSOLETO] El indicador `--without` está obsoleto porque depende de ser recordado en invocaciones de bundler, lo cual bundler ya no hará en versiones futuras. En su lugar, use `bundle config set --local without 'test development'`, y deje de usar este indicador.
Bundler 2.3.13 se está ejecutando, pero su lockfile fue generado con 2.4.1. Instalando Bundler 2.4.1 y reiniciando usando esa versión.
Obteniendo metadatos de gem de https://rubygems.org/.
Obteniendo bundler 2.4.1
Instalando bundler 2.4.1
[OBSOLETO] El indicador `--deployment` está obsoleto porque depende de ser recordado en invocaciones de bundler, lo cual bundler ya no hará en versiones futuras. En su lugar, use `bundle config set --local deployment 'true'`, y deje de usar este indicador.
[OBSOLETO] El indicador `--without` está obsoleto porque depende de ser recordado en invocaciones de bundler, lo cual bundler ya no hará en versiones futuras. En su lugar, use `bundle config set --local without 'test development'`, y deje de usar este indicador.
Obteniendo metadatos de gem de https://rubygems.org/.........
Obteniendo https://github.com/rails/sprockets
web-push-3.0.0 requiere la versión de ruby >= 3.0, que es incompatible con la
versión actual, 2.7.6
Docker Manager: FALLÓ AL ACTUALIZAR
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:209:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:93:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:20:in `block in fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:18:in `fork'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-7.0.3.1/lib/active_support/fork_tracker.rb:18:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
Iniciando 7 trabajadores de Unicorn que se detuvieron inicialmente
Nunca antes había tenido un error de actualización, así que no estoy seguro de qué hacer a continuación. Y si esto hubiera sucedido en producción, ¿qué haría?