La actualización falla con un error inesperado durante la reconstrucción

Hola a todos,

Tengo un problema con una actualización de Discourse. El comando de reconstrucción falla y no puedo completar la actualización. Está relacionado con el paso de bundle install

FAILED
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle install --retry 3 --jobs 4' falló con el retorno #<Process::Status: pid 6677 exit 5>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle config --local deployment true'", "su discourse -c 'bundle install --retry 3 --jobs 4'"]}
d5f6cd1fd76403647c95480f36207ae014cd548ec8eb9914fdf280998b5597d
** FALLÓ EL ARRANQUE ** por favor, desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
el arranque falló con el código de salida 5

pero no estoy seguro de cómo solucionarlo. ¿Algún consejo?

¡Gracias por cualquier indicación!

Por favor, publique el registro completo (o al menos los errores anteriores), ya que ese fragmento por sí solo no significa mucho.

1 me gusta

Puede que lo intentes sin la barra de herramientas de formato de discurso.

Sí, desinstalé ese plugin junto con el resto, pero lamentablemente, el problema persiste.

Después de desinstalar casi todos los plugins, he adjuntado la última salida de la ejecución de ./discourse-doctor, y el problema persiste. Me pregunto si también debería considerar eliminar algunas de las plantillas o si el error podría estar en otro lugar. Todo funcionaba sin problemas hasta que intenté actualizar, y ahora el sitio está caído. Aquí está el texto adicional de la salida de ./discourse-doctor, que puede arrojar más luz sobre el problema:

2023-12-14 22:38:53.291 UTC [42] LOG: la base de datos está apagada
11:14 Mi Dic 2023 22:38:53.536 +0000 Guardado en disco
11:14 Mi Dic 2023 22:38:53.346 # Redis está listo para salir, adiós...

FALLIDO
Pups::ExecError: cd /var/www/discourse &amp;&amp; su discourse -c 'bundle install --retry 3 --jobs 4' falló con retorno #&lt;Process::Status: pid 518 exit 5&gt;
Ubicación del fallo: /usr/local/lib/ruby/gems/2.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
ejecución fallida con los parámetros {"cd"=&gt;"$home", "hook"=&gt;"bundle_exec", "cmd"=&gt;["su discourse -c 'bundle config --local deployment true'", "su discourse -c 'bundle config --local without \\\"development test\\\"'", "su discourse -c 'bundle install --retry 3 --jobs 4'"]}
** FALLO AL INICIAR ** por favor desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
0cbe5f54cc4be6fd4475fdad523d75c5cd36cded997f6b3cab34e4e908896
==================== FIN DEL LOG DE RECONSTRUCCIÓN ====================
No se pudo reconstruir la aplicación.

Comprobando tu nombre de dominio...
Conexión a forospyware.com exitosa.
Probablemente deberías eliminar cualquier plugin no estándar y reconstruir.
Intentando reiniciar el contenedor existente...
Se detectó arquitectura x86_64.

iniciando contenedor existente
+ /usr/bin/docker start app
Respuesta de error del daemon: el driver falló al programar la conectividad externa en el endpoint app (1a8bb1f1f3267284b55ed1620db877010454d9932112d71de80bac3e5ff7d7): Error al iniciar el proxy userland: listen tcp 0.0.0.0:443: bind: address already in use
Error: no se pudieron iniciar los contenedores: app
No se pudo reiniciar el contenedor.

==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git
No se detectaron plugins no oficiales.

Consulta https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb para ver la lista oficial.

==================== VERSIÓN DE DISCOURSE ====================
Versión de Discourse en forospyware.com: NO ENCONTRADA
Versión de Discourse en localhost: NO ENCONTRADA

==================== INFORMACIÓN DE MEMORIA ====================
RAM (MB): 8174

total usado libre compartido buff/cache disponible
Mem: 7983 195 4275 80 3512 7326
Swap: 0 0 0

==================== COMPROBACIÓN DE ESPACIO EN DISCO ====================
-- Espacio en disco del SO
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 155G 107G 49G 69% /

==================== INFORMACIÓN DE DISCO ====================
Disco /dev/vda: 160 GiB, 171798691840 bytes, 335544320 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: gpt
Identificador de disco: 603625F3-7AE2-40CB-B05E-08D7EAD257E4

Device Start End Sectors Size Type
/dev/vda1 227328 335544286 335316959 159.9G Linux filesystem
/dev/vda14 2048 10239 8192 4M BIOS boot
/dev/vda15 10240 227327 217088 106M Microsoft basic data

Las entradas de la tabla de particiones no están en el orden del disco.
==================== FIN DE INFORMACIÓN DE DISCO ====================

==================== PRUEBA DE CORREO ====================
Para una prueba robusta, obtén una dirección de http://www.mail-tester.com/
O simplemente envíate un mensaje de prueba a ti mismo.
Dirección de correo para la prueba de correo? ('n' para omitir) [ ]: n
Prueba de correo omitida.
Reemplazando: SMTP_PASSWORD
Reemplazando: LETSENCRYPT_ACCOUNT_EMAIL
Reemplazando: DEVELOPER_EMAILS
Reemplazando: DISCOURSE_DB_PASSWORD
Reemplazando: Sending mail to

==================== ¡LISTO! ====================
Puedes examinar la salida de este script con
LESS=-Ri less /tmp/discourse-debug.txt

PERO PRIMERO, ¡asegúrate de conocer los tres primeros comandos a continuación!

Comandos para conocer al ver el archivo con el comando anterior (llamado 'less'):
q -- salir
/ -- buscar la palabra 'error'
n -- buscar la siguiente ocurrencia
N -- ir a la

Necesitas compartir la primera parte del registro de compilación. La parte que incluye la línea bundle install.

¿Te refieres a esta parte? - lo siento, es muy difícil moverse y ver todo el código con la consola de DigitalOcean.

¿Podrías revisar el registro largo y proporcionar los lugares donde hay errores? El que está al final no debería ser el único.

Si eso es demasiado engorroso, proporcionar el registro completo también sirve.

Parece que este fue el fallo crítico:

I, [2023-12-14T22:38:19.544278 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle install --retry 3 --jobs 4'
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext
/usr/local/bin/ruby extconf.rb
  -- tar zxvfo msgpack-1.1.0.tar.gz
  -- env CFLAGS=nil LDFLAGS=nil CC=nil
-- ./configure --disable-dependency-tracking --disable-shared --with-pic
--prefix=/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext/dst/
--libdir=/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext/dst/lib
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/usr/local/bin/$(RUBY_BASE_NAME)
extconf.rb:6:in `sys': ./configure --disable-dependency-tracking
--disable-shared --with-pic
--prefix=/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext/dst/
--libdir=/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0/ext/dst/lib
failed, please report to https://github.com/tmm1/rbtrace/issues (RuntimeError)
	from extconf.rb:42:in `block (2 levels) in <main>'
	from extconf.rb:34:in `chdir'
	from extconf.rb:34:in `block in <main>'
	from extconf.rb:30:in `chdir'
	from extconf.rb:30:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can
be found here:

/var/www/discourse/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/rbtrace-0.5.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rbtrace-0.5.0 for inspection.
Results logged to
/var/www/discourse/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/rbtrace-0.5.0/gem_make.out

  /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:120:in `run'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/ext_conf_builder.rb:28:in
`build'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:188:in
`build_extension'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:222:in `block in
build_extensions'
  /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:219:in `each'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/ext/builder.rb:219:in
`build_extensions'
/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/installer.rb:844:in
`build_extensions'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/rubygems_gem_installer.rb:72:in
`build_extensions'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/rubygems_gem_installer.rb:28:in
`install'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/source/rubygems.rb:198:in
`install'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/installer/gem_installer.rb:54:in
`install'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/installer/parallel_installer.rb:156:in
`do_install'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/installer/parallel_installer.rb:147:in
`block in worker_pool'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:62:in
`apply_func'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:57:in
`block in process_queue'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:54:in
`loop'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:54:in
`process_queue'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/worker.rb:90:in
`block (2 levels) in create_threads'

An error occurred while installing rbtrace (0.5.0), and Bundler cannot continue.

¿Podrías proporcionar ese archivo de registro? (/var/www/discourse/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/rbtrace-0.5.0/mkmf.log)

Jay tuvo el mismo problema Rebuild failure: "extconf failed, exit code 1" -- due to old Docker?, pero no sé si finalmente resolvió el problema.

@TroyaNO Por si acaso, ¿puedes intentar escribir git pull antes de volver a intentar ./launcher rebuild app?

1 me gusta

Decidí que era un Docker antiguo, aunque eso no tenía mucho sentido.

Pero apuesto a que esto ha estado en la misma máquina virtual desde 2018 y el sistema operativo está desactualizado.

Así que lo que haría sería iniciar un nuevo droplet y Mover un sitio de Discourse a otro VPS con rsync.

1 me gusta