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

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

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.

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

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?

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?

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?

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).

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?