Problème de mise à jour : Forum cassé

Salut,

J’ai un problème avec la dernière mise à jour. Mon forum est cassé.
J’ai ce message sur SSH.

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' a échoué avec le retour #<Process::Status: pid 2472 exit 1>
Emplacement de l'échec : /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec a échoué avec les paramètres {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
3d52a3f170f714bf580dcd30effbf9306fbf6e0ef1f786cf9dd4e326b066e6a4
** ÉCHEC DU DÉMARRAGE ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.

Avez-vous une idée d’où vient le problème et comment le résoudre ?

Merci beaucoup.

2 « J'aime »

Pourriez-vous faire défiler vers le haut et vérifier s’il y a des erreurs plus spécifiques, et voir ce qu’il dit ?

1 « J'aime »

Salut,

Voici un pastebin de l’ensemble du processus. Il y a visiblement quelques erreurs avec postgresql même si je ne suis pas sûr que le problème vienne de là

https://pastebin.com/nqLWDRAC

Comment avez-vous installé ? Quelle version de postgres utilisez-vous ?

Causé par :
PG::InsufficientPrivilege : ERREUR :  permission refusée pour créer l'extension « unaccent »
INDICE :  Doit être superutilisateur pour créer cette extension.
1 « J'aime »

Je me suis connecté avec root.
Je ne peux pas avoir de meilleurs privilèges :slight_smile:

Je ne sais pas pour postgres
« Le programme ‘pg_config’ se trouve dans les paquets suivants : »

Le forum est en ligne.
Je redémarre le serveur.

Le premier problème est résolu mais j’en ai un second.

J’ai cette erreur “500 Internal Server Error” quand je crée ou réponds à un post.

Avez-vous une idée pour résoudre ça ?

Salut,

J’ai trouvé cette erreur dans le fichier journal

ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERROR: la transaction actuelle est annulée, les commandes sont ignorées jusqu'à la fin du bloc de transaction) app/models/post.rb:973:in `block in link_post_uplo
ActiveRecord::StatementInvalid (PG::InFailedSqlTransaction: ERROR: la transaction actuelle est annulée, les commandes sont ignorées jusqu'à la fin du bloc de transaction
)
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'

Avez-vous une idée de ce que pourrait être le problème ?

S’agit-il d’une installation standard ?

oui,

j’utilise le forum depuis 6 ans.

La dernière version installée est la 2.9.0.beta3

Avez-vous des plugins installés ? Peut-être publiez votre app.yml ?

Quelle est votre version de postgres ? Entrez simplement launcher enter app, puis tapez psql -V

2 « J'aime »

Salut,

Je teste mais le problème d’origine est de retour

Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' a échoué avec le retour #<Process::Status: pid 2458 exit 1>
Emplacement de l'échec : /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec a échoué avec les paramètres {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
45d3621c802f025ef80ad34e77ec3318a48677b0de0134210120ef7690b6e6f4
** ÉCHEC DU DÉMARRAGE ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.

Je pense qu’il y a eu un problème lors de la mise à jour car il n’y avait pas assez d’espace sur le disque dur. J’ai libéré de l’espace et j’ai maintenant 67% de libre. Cependant, il y a un problème existant, mais lequel ?

Le programme ‘psql’ n’est pas installé actuellement.
dois-je l’installer ?

Avez-vous exécuté

launcher enter app

Avant la commande psql ?

1 « J'aime »

C’est pareil,
J’ai essayé d’installer mais j’ai ce message

E: Le paquet libperl5.22 doit être réinstallé, mais je ne trouve aucune archive pour lui.

J’ai jeté un autre regard sur votre fichier journal pastebin. Il indique Postgres 10.
Êtes-vous sûr qu’il s’agit d’une configuration standard installée conformément à discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub ?

1 « J'aime »

Je l’ai déjà dit, le forum existe depuis de nombreuses années et je n’ai jamais eu de problèmes majeurs. Généralement, une reconstruction ou une mise à jour suffisait à tout remettre en marche.
Oui, c’est une installation normale.

Ma dernière tentative.

Pouvez-vous s’il vous plaît faire

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

et copier ceci entièrement dans une réponse, y compris les commandes et la sortie ?

1 « J'aime »
psql (PostgreSQL) 10.19 (Debian 10.19-1.pgdg110+1)

Ok, super. C’est un résultat différent de la dernière fois.
Alors maintenant, s’il vous plaît, faites ce qui suit :

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

Et si vous obtenez des erreurs, veuillez poster TOUTE la sortie, y compris vos commandes, dans une réponse (ou sur Pastebin).

1 « J'aime »

Curieusement, j’ai rencontré la même erreur ou une erreur similaire. Je suis sous Discourse 2.9.0.beta2 et j’ai essayé de mettre à jour vers la ß3. J’ai désactivé tous les plugins sauf docker_manager pour ./launcher rebuild app. Je suis sur une base de données PGSQL externe de version :

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

Je peux redémarrer le conteneur via ./launcher restart app après l’échec, mais les réponses reviennent avec une erreur 500.

L’erreur finale lors de la reconstruction/mise à niveau est :

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse &amp;&amp; su discourse -c 'bundle exec rake db:migrate' failed with return #&lt;Process::Status: pid 658 exit 1&gt;
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=&gt;"$home", "hook"=&gt;"db_migrate", "cmd"=&gt;["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

Les erreurs significatives réelles ci-dessus peuvent être trouvées ici : https://p153.p0.n0.cdn.getcloudapp.com/items/jkuvPekN/feb38236-3b84-410e-8fac-d1864d02ba69.txt?v=eb1d15e029cb07a73300d8ec07318876

J’ai du mal à croire qu’il s’agisse d’un problème de permission réel et j’hésite à donner à l’utilisateur de la base de données Discourse les permissions de superutilisateur/root à pgsql.

Avez-vous d’autres idées sur ce qui pourrait se passer avec une interruption aussi récente ?