Mise à jour = ☠

Salut à tous

Je me tiens au courant des mises à jour, j’en ai vu une arriver et je l’ai faite, le résultat a été aucune interface utilisateur sauf dans l’administration

Je me suis connecté via SSH et j’ai effectué les mises à jour du serveur pour m’assurer que tout était en ordre, sans succès

J’ai essayé de revenir en arrière et j’ai obtenu ceci

Je suis entré en mode sans échec et j’ai été démarré, mais j’ai obtenu une interface utilisateur partielle

Je ne peux pas me connecter, il dit que mon nom d’utilisateur est disponible et que mon e-mail n’existe pas

J’aurais besoin d’aide s’il vous plaît, merci


édition, j’ai redémarré le serveur et j’ai obtenu

pas convaincu, je suis allé m’inscrire, j’ai pensé qu’une sauvegarde était due maintenant

pas de succès non plus


édition, en actualisant une autre fenêtre, j’ai semblé pouvoir m’inscrire

puis

toujours pas de succès


SSH et les choses semblent toujours comme avant


édition
image



DISCOURSE DOCTOR Sun Nov 12 01:54:06 UTC 2023
OS: Linux ip-10-0-159-37 6.2.0-1015-aws #15~22.04.1-Ubuntu SMP Fri Oct  6 21:37:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux


Found containers/app.yml

==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.full30.com
SMTP_ADDRESS=smtp.sendgrid.net
DEVELOPER_EMAILS=REDACTED
SMTP_PASSWORD=REDACTED
SMTP_PORT=587
SMTP_USER_NAME=apikey
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED  LETSENCRYPT_ACCOUNT_EMAIL

==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 24.0.7, build afdd53b

DOCKER PROCESSES (docker ps -a)

CONTAINER ID   IMAGE                 COMMAND        CREATED        STATUS                      PORTS     NAMES
0be0150fecde   local_discourse/app   \"/sbin/boot\"   5 months ago   Exited (5) 11 minutes ago             app

==================== SERIOUS PROBLEM!!!! ====================
app not running!
Attempting to rebuild
==================== REBUILD LOG ====================
x86_64 arch detected.
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20231023-1945: Pulling from discourse/base
Digest: sha256:2b0eb484d20888cc2daadb690dcfa73522105650c1420212e99345a36a424d77
Status: Image is up to date for discourse/base:2.0.20231023-1945
docker.io/discourse/base:2.0.20231023-1945
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2023-11-12T01:54:13.829288 #1]  INFO -- : Reading from stdin
I, [2023-11-12T01:54:13.834181 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2023-11-12T01:54:13.862453 #1]  INFO -- : Generating locales (this might take a while)...
Generation complete.

I, [2023-11-12T01:54:13.862638 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2023-11-12T01:54:13.865023 #1]  INFO -- :
I, [2023-11-12T01:54:13.865390 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2023-11-12T01:54:13.867489 #1]  INFO -- :
I, [2023-11-12T01:54:13.867791 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2023-11-12T01:54:13.869643 #1]  INFO -- :
I, [2023-11-12T01:54:13.869925 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2023-11-12T01:54:13.871930 #1]  INFO -- :
I, [2023-11-12T01:54:13.872203 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2023-11-12T01:54:13.874058 #1]  INFO -- :
/tmp/discourse-debug.txt
2 « J'aime »

Cela semble important :

Warning: Could not create server TCP listening socket *:6379: bind: Address already in use

Je pense que Redis est censé s’exécuter sur le port 6379.

Le fait de ne pas pouvoir créer le serveur Redis pourrait-il causer des problèmes avec les migrations ?

Error: relation "summary_sections" already exists

Pour une raison quelconque, la migration pour créer la table summary_sections est exécutée à nouveau. Y a-t-il d’autres erreurs de table en double dans vos journaux ?

Je suppose que l’autre question est de savoir si vous avez un fichier de sauvegarde récent.

6 « J'aime »

lol, oui, je parierais à peu près la même chose, la réponse est malheureusement en regardant mon serveur, je vois le 5 novembre comme le plus récent, comme je ne peux pas me connecter à l’administration, je ne peux pas voir s’il y en a peut-être un plus récent créé par Discourse

Mais… c’est ce matin,

forum

Si je ne peux pas me connecter au tableau de bord d’administration pour faire une sauvegarde, alors je ne sais tout simplement pas quoi faire ?

Merci pour la réponse, j’espère pouvoir repartir rapidement même avec une sauvegarde vieille d’une semaine.

Robert

1 « J'aime »

Je suis tellement peu familier avec les journaux, je fais cela depuis cinq ans avec si peu de problèmes et facilement réparables qu’il n’y avait aucune raison de l’être, et je n’ai pas d’équipe technique à qui demander, est-ce quelque chose que vous pouvez me guider pour obtenir et publier et sera-t-il expurgé comme le dossier du médecin si je le télécharge ?

J’ai également rencontré un problème avec cette dernière mise à jour pour un nouveau site. J’ai peut-être interrompu accidentellement l’installation, puis le site a signalé à la fois qu’il avait été mis à jour et qu’il devait être mis à jour de toute urgence, mais qu’il ne pouvait pas être mis à jour car il venait de terminer la dernière mise à jour.

La reconstruction de l’application depuis la console a résolu ce problème, je n’ai pas eu à récupérer à partir d’une sauvegarde.

Il serait bon de savoir comment relancer un site à partir d’une sauvegarde, je ne sais pas non plus comment faire cela.

2 « J'aime »

juste pour réessayer, j’ai fait

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

et j’ai de nouveau obtenu

erreurs/avertissements comme suit

image

Doctor n’a pas aidé à nouveau, j’ai gardé son rapport mais rien de nouveau dedans

1 « J'aime »

Je fais une autre reconstruction maintenant, j’ai des erreurs similaires :

137:M 12 Nov 2023 13:09:14.143 # Avertissement : Impossible de créer le socket d’écoute TCP du serveur *:6379 : bind : Adresse déjà utilisée
137:M 12 Nov 2023 13:09:14.143 # Échec de l’écoute sur le port 6379 (TCP), abandon.

Cependant, cela continue, je me souviens avoir vu cela auparavant, mais l’installation s’est terminée.

Êtes-vous connecté à la console du serveur avec ssh en tant que root ?

Quelques fois, l’installation prend du temps à se terminer, semblait durer plus de 10 minutes, j’avais pensé que cela plantait au début, mais après avoir attendu suffisamment longtemps, cela s’est terminé.

Beaucoup d’erreurs concernant une dépendance pair incorrecte/non satisfaite.

Ensuite, cela s’arrête après la ligne “sauvegarde en arrière-plan terminée avec succès”, ce qui semble être une conclusion, mais apparemment pas, c’est là que cela peut prendre dix minutes pour passer à l’étape suivante.

2 « J'aime »

Pour afficher les détails du journal, vous pouvez faire ceci :

connectez-vous en tant que root ou faites « sudo su »
puis exécutez les commandes :

cd /var/discourse
./launcher enter app
tail -f log/production.log

Après avoir exécuté la dernière commande, vous devrez effectuer une requête HTTP vers votre Discourse. Un nouveau message d’erreur s’affichera dans votre terminal. Vous pourrez ensuite arrêter l’exécution de la commande tail en utilisant Ctrl+C et afficher ou copier le message.

Pour quitter le shell du conteneur, vous pouvez utiliser la commande exit.

2 « J'aime »

oui

Erreur de réponse du démon : le conteneur 0be0150fecde6af5e98c0f12b97d24ccc1333fee2e96f02174ac63b79df8efbc ne fonctionne pas
tail: impossible d’ouvrir ‘log/production.log’ en lecture : Aucun fichier ou répertoire de ce type
tail: aucun fichier restant

J’ai essayé la requête HTTP avec curl « https://forum.full30.com »

et j’ai obtenu

curl: (3) URL utilisant un format incorrect/illégal ou URL manquante

donc… peut-être que je n’ai tout simplement pas compris ce que vous vouliez dire par requête http :man_shrugging:

Avec cette sauvegarde comme la plus récente, et comme je ne suis pas un expert en ce genre de choses, je ne suis pas sûr de devoir donner des conseils ici.

Pour autant que je puisse en juger, le problème avec Warning: Could not create server TCP listening socket *:6379 n’est probablement pas lié aux erreurs que vous obtenez pour les migrations. Par exemple :

INFO -- cd /var/www/discourse and su discourse -c 'bundle exec rake db:migrate'

ERROR: database "discourse" already exists

Error: role "discourse" already exists

Error: relation "summary_sections" already exists

Ces erreurs semblent suggérer que votre base de données est en quelque sorte corrompue. La commande bundle exec rake db:migrate (qui se trouve dans la section INFO de l’extrait de vos journaux que j’ai posté ci-dessus) devrait déclencher Discourse pour vérifier la table schema_migrations de la base de données afin de voir quelles migrations ont été précédemment exécutées. Cela empêche la même migration d’être exécutée plusieurs fois. Ma supposition est donc que soit la table schema_migrations de votre base de données est corrompue, soit des entrées en double ont trouvé leur chemin dans le dossier db/migrations, soit les fichiers du dossier db/migrations ont été renommés d’une manière ou d’une autre. Je ne sais pas ce qui pourrait déclencher l’une de ces choses.

Je serais tenté d’entrer dans l’application avec ./launcher enter app et d’exécuter la migration manuellement à partir de là pour voir si cela fait une différence. Mais attendez avant de faire cela. J’espère que quelqu’un ayant plus de connaissances sur les scripts du lanceur verra ce message et corrigera tout ce que j’ai écrit qui est faux.

3 « J'aime »

Curieux de connaître votre opinion, ou celle de quiconque

Nous prévoyons un autre déménagement de serveur, serait-ce un bon moment car ces problèmes semblent être centrés autour de

PG::DuplicateTable: ERROR: relation « summary_sections » existe déjà

etc. éléments déjà existants ?

Un déménagement pourrait-il aider ?

Je soupçonne que cela résoudrait le problème. Cela ne pourrait pas faire de mal d’essayer de créer une nouvelle installation et d’y importer votre fichier de sauvegarde le plus récent.

2 « J'aime »

Le site semble déjà penser qu’il s’agit d’une nouvelle installation, notez certaines de mes captures d’écran

Cela s’est produit simplement lorsque j’ai utilisé le mode sans échec, c’est un crash assez important juste à partir d’une mise à jour, et encore plus étrange si seule mon instance de discourse a été affectée et s’est effondrée.

J’ai fait des git pull etc. pas de différence, je dirais que c’est comme construire à partir de zéro, si je me trompe, dites-moi comment.

essayé

./launcher start-cmd app

./launcher cleanup

supprimé 18 Mo d’images, effectué un nouveau pull/rebuild/fail/doctor et toujours pas de succès

toutes mes informations sont toujours présentes lorsque j’accède à mon application, donc au moins ça.

Je suis sûr à 95 % que les erreurs de table en double peuvent être ignorées sans risque. (Je me souviens les avoir vues à chaque mise à niveau sur notre forum)

1 « J'aime »

Je les ai ignorés mais je ne parviens toujours pas à me reconnecter.

Que pensez-vous de ces erreurs ?

Pourriez-vous publier un journal complet d’une reconstruction ?

1 « J'aime »

J’ai eu le même problème hier. Je pensais que c’était un problème de serveur car les mises à jour précédentes avaient un comportement similaire, et j’ai décidé de courir pour résoudre temporairement

/launcher rebuild app

J’ai téléchargé la dernière sauvegarde et déployé un nouveau serveur. La restauration de la sauvegarde a été trop facile et mystérieusement, tout est déjà mis à jour.

1 « J'aime »
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 645 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["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.
./discourse-doctor may help diagnose the problem.
adb2c505fd2f1289f44586496fea24ff31264f73c26eb524baf16602a189f
root@ip-10-0-159-37:/var/discourse#

signifie faire quoi exactement ?

Oui, que dois-je masquer en premier ?