Problema de actualización: Foro roto

Hola,

Tengo un problema con la última actualización. Mi foro está roto.
Tengo este mensaje en SSH.

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' falló con el retorno #<Process::Status: pid 2472 exit 1>
Ubicación del fallo: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
3d52a3f170f714bf580dcd30effbf9306fbf6e0ef1f786cf9dd4e326b066e6a4
** FALLÓ EL ARRANQUE ** 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.

¿Tienes alguna idea de dónde está el problema y cómo solucionarlo?

Muchas gracias

2 Me gusta

¿Podrías desplazarte hacia arriba y buscar errores más específicos, y ver qué dice?

1 me gusta

Hola,

aquí tienes un pastebin de todo el proceso. Obviamente hay algunos errores con postgresql, aunque no estoy seguro de que el problema provenga de ahí.

https://pastebin.com/nqLWDRAC

¿Cómo lo instalaste? ¿Qué versión de postgres estás usando?

Caused by:
PG::InsufficientPrivilege: ERROR:  permission denied to create extension "unaccent"
HINT:  Must be superuser to create this extension.
1 me gusta

Inicié sesión como root.
No puedo tener mejores privilegios :slight_smile:

No sé sobre postgres
“El programa ‘pg_config’ se puede encontrar en los siguientes paquetes:”

El foro está en línea.
Reinicié el servidor.

El primer problema está solucionado, pero tengo un segundo.

Tengo este error “500 Internal Server Error” cuando creo o respondo una publicación.

¿Tienes alguna idea de cómo solucionarlo?

Hola,

Encontré este error en el archivo de registro

ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERROR:  la transacción actual se aborta, los comandos se ignoran hasta el final del bloque de transacción) app/models/post.rb:973:in `block in link_post_uploads'
ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERROR:  la transacción actual se aborta, los comandos se ignoran hasta el final del bloque de transacción
)
app/models/post.rb:973:in `block in link_post_uploads'
app/models/post.rb:972:in `link_post_uploads'
lib/post_creator.rb:217:in `block in create'
lib/post_creator.rb:409:in `block (2 levels) in transaction'
lib/post_creator.rb:408:in `block in transaction'
lib/distributed_mutex.rb:33:in `block in synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:14:in `synchronize'
lib/post_creator.rb:407:in `transaction'
lib/post_creator.rb:205:in `create'
lib/new_post_manager.rb:285:in `perform_create_post'
lib/new_post_manager.rb:223:in `perform'
app/controllers/posts_controller.rb:193:in `create'
app/controllers/application_controller.rb:400:in `block in with_resolved_locale'
app/controllers/application_controller.rb:400:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:358:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'

¿Tienes idea de cuál es el problema?

¿Es esta una instalación estándar?

Sí,

He usado el foro durante 6 años.

La última versión instalada es la 2.9.0.beta3

¿Tienes algún plugin instalado? ¿Quizás publicar tu app.yml?

¿Cuál es tu versión de postgres? Simplemente ejecuta launcher enter app y luego escribe psql -V

2 Me gusta

Hola,

Pruébo pero el problema original ha vuelto

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' falló con retorno #<Process::Status: pid 2458 exit 1>
Ubicación del fallo: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
45d3621c802f025ef80ad34e77ec3318a48677b0de0134210120ef7690b6e6f4
** FALLÓ EL ARRANQUE ** 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.

Creo que hubo un problema al actualizar porque no había suficiente espacio en el disco duro. Liberé algo de espacio y ahora tengo el 67% libre. Sin embargo, hay un problema existente, ¿pero cuál?

El programa ‘psql’ no está instalado actualmente.
¿Tengo que instalarlo?

¿Hiciste

  launcher enter app

antes del comando psql?

1 me gusta

Es lo mismo,
Intento instalar pero tengo este mensaje

E: El paquete libperl5.22 necesita ser reinstalado, pero no puedo encontrar un archivo para él.

He vuelto a examinar tu archivo de registro de pastebin. Dice Postgres 10.
¿Estás seguro de que se trata de una configuración estándar que se ha instalado de acuerdo con https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md?

1 me gusta

Lo he dicho antes, el foro existe desde hace muchos años y nunca he tenido ningún problema importante. Por lo general, una reconstrucción o actualización fue suficiente para que todo volviera a funcionar.
Sí, es una instalación normal.

Mi último intento.

¿Puedes por favor hacer

cd /var/discourse
./launcher enter app
psql -V

y copiar esto completamente en una respuesta, incluyendo los comandos y la salida?

1 me gusta
psql (PostgreSQL) 10.19 (Debian 10.19-1.pgdg110+1)

Ok, genial. Ese es un resultado diferente al de la última vez.
Así que ahora, por favor, haz lo siguiente:

cd /var/discourse
git pull
./launcher rebuild app

y si obtienes errores, por favor publica la salida COMPLETA, incluyendo tus comandos, en una respuesta (o en Pastebin).

1 me gusta

Curiosamente, he experimentado el mismo error o uno similar. Ejecutando en Discourse 2.9.0.beta2 y he intentado actualizar a ß3. He deshabilitado todos los plugins excepto docker_manager para ./launcher rebuild app. Ejecutando en una base de datos PGSQL externa en la versión:

$ psql --version
psql (PostgreSQL) 14.1 (Ubuntu 14.1-1.pgdg18.04+1)

Puedo reiniciar el contenedor con ./launcher restart app después del fallo, pero cuando las respuestas devuelven un error 500.

El error final durante la reconstrucción/actualización es:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' falló con retorno #<Process::Status: pid 658 exit 1>
Ubicación del fallo: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap falló con código de salida 1
** FALLO AL INICIAR ** por favor, desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.

Los errores significativos reales anteriores se pueden encontrar aquí: https://p153.p0.n0.cdn.getcloudapp.com/items/jkuvPekN/feb38236-3b84-410e-8fac-d1864d02ba69.txt?v=eb1d15e029cb07a73300d8ec07318876

Me cuesta creer que este sea un problema real de permisos y dudo en dar al usuario de la base de datos de Discourse permisos de superusuario/root en pgsql.

¿Alguna otra idea sobre lo que podría estar sucediendo con una interrupción tan reciente?