Atascado con el error ./launcher rebuild app (Process::Status: pid 2096)

Hoy, al ejecutar el comando ./launcher rebuild app (sin ninguna razón que pudiera encontrar), recibo este error (además, esto es después de haber deshabilitado todos los plugins en el archivo app.yml)… ¡Agradecería mucho cualquier ayuda con esto!

error-log_2024-10-31_1.txt (44.1 KB)

terminando con…

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' falló con el retorno #<Process::Status: pid 2096 exit 1>
Ubicación del fallo: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap falló con el código de salida 1
** FAILED TO BOOTSTRAP **
1 me gusta

La parte relevante del registro es

undefined method `+' for nil
/var/www/discourse/db/migrate/20241025045928_add_invites_link_to_sidebar.rb:44:in `up'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4.2/lib/active_record/migration.rb:989:in `public_send'

Así que parece relacionado con FEATURE: Add invite link to the sidebar (#29448) · discourse/discourse@19672fa · GitHub (cc @osama)

4 Me gusta

Muchas gracias (y por la explicación), yo también lo vi, ¡y me pregunté si era eso!

1 me gusta

@denvergeeks Voy a arreglar la migración, pero tengo curiosidad sobre cómo tu sitio llegó a este estado. ¿Cómo se ve la barra lateral en tu sitio? ¿Has eliminado todos los enlaces de la barra lateral predeterminada de la base de datos?

Claro, no tengo una captura de pantalla de la barra lateral ni del sitio, pero no se ha modificado nada excepto añadir algunos elementos de menú básicos en el “más…”.

Es solo una de mis instancias de investigación personal de Discourse (no pública) para poder ayudar a depurar si me dices qué quieres que haga en la línea de comandos. (Tengo mi propio servidor dedicado si eso ayuda).

1 me gusta

¿Puedes decirme qué generan las siguientes consultas en tu base de datos?

SELECT id FROM sidebar_sections WHERE section_type = 0;
SELECT linkable_type, linkable_id, position FROM sidebar_section_links WHERE sidebar_section_id IN (SELECT id FROM sidebar_sections WHERE section_type = 0);
SELECT id, segment FROM sidebar_urls WHERE id IN (SELECT linkable_id FROM sidebar_section_links WHERE sidebar_section_id IN (SELECT id FROM sidebar_sections WHERE section_type = 0));

Claro que sí. ¿Podrías proporcionar los comandos desde el inicio/prompt? (Soy usuario root)

1 me gusta

No puedo decirte los comandos exactos de memoria, pero he buscado aquí en Meta y creo que estos funcionarán:

./launcher enter app
su postgres
psql

Después del comando psql, deberías poder pegar las consultas y ejecutarlas para ver sus resultados. Avísame si los comandos no funcionan.

root@JEN /var/discourse # ./launcher enter app101
su postgres
psql
x86_64 arch detected.
Error response from daemon: container 8ee36bdfa85b786ea149e6714f65048e136091fe31be2f5425be5fe04a852729 is not running
su: user postgres does not exist or the user entry does not contain all the required fields
Command 'psql' not found, but can be installed with:
apt install postgresql-client-common

Parece que tu contenedor no se está ejecutando. ¿Tu sitio está caído en este momento? Intenta:

./launcher start app101
root@JEN /var/discourse # ./launcher start app101
Se detectó la arquitectura x86_64.

iniciando contenedor existente
+ /usr/bin/docker start app101
app101
root@JEN /var/discourse # ./launcher enter app101
su postgres
psql
Se detectó la arquitectura x86_64.
root@JEN-app101:/var/www/discourse# SELECT id FROM sidebar_sections WHERE section_type = 0;
bash: SELECT: comando no encontrado
root@JEN-app101:/var/www/discourse#

El sitio está iniciado y aquí está la barra lateral y …más elementos

1 me gusta

Ok, ahora tiene sentido. La migración espera al menos 1 enlace fuera de ... más, pero no tienes ninguno, por lo que falla. Actualizaré la migración para que tenga en cuenta este caso.

2 Me gusta

También obtuve el mismo error (y detuve el contenedor) en otro de mis sitios. (Pero no en algunos otros sitios).

Editar: Sí, ese otro sitio (donde encontré el mismo comportamiento) tampoco tiene un enlace fuera de ... más.

¿Hemos terminado?

La imagen es una fotografía borrosa y de baja resolución de la cara de un niño pequeño, con el niño mirando directamente a la cámara y sonriendo. (Subtitulado por IA)

Lo siento @denvergeeks, surgió algo personal urgente y tuve que ausentarme por un par de horas. He preparado una PR con una solución:

Te avisaré cuando se fusione y pase las pruebas.

3 Me gusta

@denvergeeks, la corrección ha llegado a la rama tests-passed. Si vuelves a compilar ahora, debería tener éxito.

3 Me gusta

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