La actualización de Discourse falla

Intenté actualizar Discourse a la última versión hoy. Falló. Aquí está el registro:

********************************************************
*** Por favor, ten paciencia, los próximos pasos pueden tardar un tiempo ***
********************************************************
Reiniciando Unicorn, para liberar memoria
Reiniciando unicorn pid: 548
Esperando que Unicorn se recargue.
Esperando que Unicorn se recargue..
Esperando que Unicorn se recargue...
Esperando que Unicorn se recargue....
Esperando que Unicorn se recargue.....
Esperando que Unicorn se recargue......
Esperando que Unicorn se recargue.......
Esperando que Unicorn se recargue........
Esperando que Unicorn se recargue.........
Deteniendo 3 trabajadores de Unicorn, para liberar memoria
Deteniendo la cola de trabajos para recuperar memoria, el pid maestro es 2943724
$ cd /var/www/discourse & git fetch --tags --prune-tags --prune --force
$ cd /var/www/discourse & git reset --hard HEAD@{upstream}
HEAD está ahora en be4f1e335 PERF: Caché `hostname` en `DiscourseLogstashLogger` (#27442)
$ bundle install --retry 3 --jobs 4
Bundle completo! 141 dependencias de Gemfile, 174 gems instaladas ahora.
Las gemas en los grupos 'development' y 'test' no se instalaron.
Las gemas empaquetadas se instalan en `./vendor/bundle`
1 gema instalada de la que dependes directamente está buscando financiación.
  Ejecuta `bundle fund` para más detalles
$ yarn install
yarn install v1.22.19
[1/5] Validando package.json...
[2/5] Resolviendo paquetes...
advertencia El campo de resolución "unset-value@2.0.1" es incompatible con la versión solicitada "unset-value@^1.0.0"
[3/5] Obteniendo paquetes...
error ember-template-lint@6.0.0: El motor "node" es incompatible con este módulo. Versión esperada "^\18.18.0 || ^20.9.0 || >=21.1.0". Se obtuvo "18.16.0"
error Se encontró un módulo incompatible.
info Visita https://yarnpkg.com/en/docs/cli/install para obtener documentación sobre este comando.
Docker Manager: FALLÓ LA ACTUALIZACIÓN
#<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>'
Reiniciando 3 trabajadores de Unicorn que se detuvieron inicialmente

¿Alguna idea?

Deberías hacer una actualización desde la línea de comandos.

./launcher rebuild app

2 Me gusta

Hola Jay,

He hecho eso. También intenté ejecutar ./launcher start app.

Pero obtuve un error diferente. Esta vez, es un error de puerta de enlace incorrecta de Nginx. Noté que Discourse se quejó de poco almacenamiento, pero liberé algo de espacio.

Adjunto algo de información.

¿Hiciste un inicio o una reconstrucción después de liberar el espacio?

La puerta de enlace incorrecta es esperada por un minuto o unos pocos después de iniciar el contenedor. Pero puede ser que hayas migrado la base de datos y el contenedor antiguo ya no funcione.

1 me gusta

Así que, cada vez que ejecuto ./launcher rebuild app o ./launcher start app o ./launcher restart app, siempre me recibe la molesta pregunta sobre la limpieza del espacio. Presiono Y cada vez.

De acuerdo, liberé algo de espacio manualmente. Aparentemente, hay archivos inútiles en el directorio snap.

Luego volví a intentar el proceso ./launcher restart app. Esta vez, el error desapareció.

Pero todavía obtengo el error 502 Bad Gateway.

1 me gusta

Si sigues recibiendo eso después de que el sitio ha estado en funcionamiento durante unos minutos, revisa /var/discourse/shared/standalone/logs/rails/production.log y también .../logs/var-log/nginx/*

Entonces, es un problema de PostgreSQL. ¿Cómo lo soluciono? Es decir, no iniciamos el servidor PostgreSQL manualmente, ¿verdad?

Los archivos dentro de postgres_data son propiedad de mi nombre de usuario en el servidor y el grupo es crontab.

¿Por qué?

¿No es esta una instalación estándar?

Usé la instalación estándar.

Luego, el proceso de actualización (a través del panel de administración) falló. Así que tuve que conectarme por SSH al servidor y liberar algo de espacio. Cuando ejecuté ./launcher rebuild (o restart) app, el proceso no arrojó ningún error, pero obtuve un error 502 Bad Gateway.

Entonces, ¿de quién debería ser la propiedad de postgres_data? ¿Root?

Todo esto debería instalarse como root.

Ejecuté ./launcher rebuild (or restart) app como root. Primero ejecuté sudo su. De todos modos, no creo que pudieras ejecutar launcher con un usuario normal (Docker se quejaría).

Okay, finalmente corregí estos problemas.

  1. Redimensioné el almacenamiento para darle espacio a Discord. Creé una instantánea de la VM de Discord en GCP y la restauré con un almacenamiento más grande.
  2. Cambié el contenido del archivo containers/app.yml:

De

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

A

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

Luego ejecuté ./launcher rebuild app sin más problemas.

¡Gracias!

2 Me gusta

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