MISE À NIVEAU DE POSTGRES ÉCHOUÉE - J'ai tout essayé

Bonjour, le site est soudainement bloqué sur « Welcome to nginx ! », je suis donc en train de déboguer et je rencontre ces erreurs.

Succès. Vous pouvez maintenant démarrer le serveur de base de données en utilisant :

    pg_ctlcluster 10 main start

Avertissement : Le répertoire stats_temp_directory sélectionné /var/run/postgresql/10-main.pg_stat_tmp
n'est pas accessible en écriture pour le propriétaire du cluster. Ce paramètre ne sera pas ajouté dans
postgresql.conf.
Ver Cluster Port Statut Owner    Répertoire de données              Fichier journal
10  main    5433 arrêté postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
update-alternatives : avertissement : forcer la réinstallation de l'alternative /usr/share/postgresql/12/man/man1/postmaster.1.gz car le groupe de liens postmaster.1.gz est cassé
invoke-rc.d : impossible de déterminer le niveau d'exécution actuel
invoke-rc.d : policy-rc.d a refusé l'exécution du démarrage.
Traitement des déclencheurs pour postgresql-common (215.pgdg100+1) ...
Construction des dictionnaires PostgreSQL à partir des paquets myspell/hunspell installés...
Suppression des fichiers de dictionnaire obsolètes :
Arrêt du serveur de base de données PostgreSQL 10 : main.
Arrêt du serveur de base de données PostgreSQL 12 : main.
Exécution des vérifications de cohérence
-----------------------------
Vérification des versions des clusters                                   OK

Le cluster source n'a pas été arrêté proprement.
Échec, sortie
-------------------------------------------------------------------------------------
LA MISE À NIVEAU DE POSTGRES A ÉCHOUÉ

Veuillez consulter https://meta.discourse.org/t/postgresql-12-update/151236 pour obtenir de l'aide

Vous pouvez exécuter ./launcher start app pour redémarrer votre application dans l'intervalle




ÉCHOUÉ
--------------------
Pups::ExecError : /root/upgrade_postgres a échoué avec le retour #<Process::Status: pid 45 exit 1>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
L'exécution a échoué avec les paramètres "/root/upgrade_postgres"
bfe8265213ad992fa3245d252d192977f05d902d7213b361f53d3bc2b0d16b3a
** ÉCHEC DU BOOTSTRAP ** Veuillez faire défiler vers le haut et rechercher les messages d'erreur antérieurs, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
root@bitkcor:/var/discourse# df -h
Filesystem      Taille  Utilisé Disponible %Utilisé Monté sur
udev            1.9G     0  1.9G   0% /dev
tmpfs           395M  648K  394M   1% /run
/dev/vda1        78G   23G   55G  30% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda15      105M  3.4M  101M   4% /boot/efi
tmpfs           395M     0  395M   0% /run/user/0
root@bitkcor:/var/discourse# ls
bin   containers        discourse-setup  launcher  README.md  scripts  templates
cids  discourse-doctor  image            LICENSE   samples    shared
root@bitkcor:/var/discourse# cd shared
root@bitkcor:/var/discourse/shared# chown -R postgres postgres_data
chown : utilisateur invalide : 'postgres'
root@bitkcor:/var/discourse/shared# ./launcher start app
-bash: ./launcher : Aucun fichier ou répertoire
root@bitkcor:/var/discourse/shared# cd ..
root@bitkcor:/var/discourse# ./launcher start app

démarrage du conteneur existant
+ /usr/bin/docker start app
Réponse d'erreur du démon : échec de la programmation de la connectivité externe sur le point de terminaison app (10f3d3b7938496e743c73affc9ddb2d821e04419985bf8e3ebde2ec9ec704a0b) : erreur de démarrage du proxy utilisateur : listen tcp 0.0.0.0:80 : bind : l'adresse est déjà utilisée
Erreur : échec du démarrage des conteneurs : app
root@bitkcor:/var/discourse# cd containers
root@bitkcor:/var/discourse/containers# ls
app.yml  app.yml.2018-08-29-034711.bak
root@bitkcor:/var/discourse/containers# cd ..
root@bitkcor:/var/discourse# ./launcher stop app
+ /usr/bin/docker stop -t 10 app
app
root@bitkcor:/var/discourse# ./launcher stop app
+ /usr/bin/docker stop -t 10 app
app
root@bitkcor:/var/discourse# git pull
Déjà à jour.
root@bitkcor:/var/discourse# ./launcher start app

démarrage du conteneur existant
+ /usr/bin/docker start app
Réponse d'erreur du démon : échec de la programmation de la connectivité externe sur le point de terminaison app (f149fe57c125ae0c276c339a1367c83262f866227ab9317ff06bf026e8776f65) : erreur de démarrage du proxy utilisateur : listen tcp 0.0.0.0:80 : bind : l'adresse est déjà utilisée
Erreur : échec du démarrage des conteneurs : app

J’ai visité https://meta.discourse.org/t/postgresql-12-update/151236 pour obtenir de l’aide et essayé les suggestions de @Falco ici… ainsi que toute autre suggestion sur Meta. Rien ne fonctionne.

À ma connaissance, j’ai plus qu’assez d’espace pour cela.

Quelqu’un peut-il me dire ce qui me manque ?

Il existe une entrée de FAQ dédiée à ce sujet dans Mise à jour PostgreSQL 12.

5 « J'aime »

Merci pour la réponse rapide ! Oui, j’ai aussi essayé cela.

root@bitkcor:/var/discourse# ./launcher start app

démarrage du conteneur existant
+ /usr/bin/docker start app
Réponse d'erreur du démon : le pilote a échoué lors de la programmation de la connectivité externe sur le point de terminaison app (49f1fdf896618efc824e50f782c1fba91bf81320e49ccadb5e5e80b342552e3e) : Erreur de démarrage du proxy utilisateur : listen tcp 0.0.0.0:80 : bind : l'adresse est déjà utilisée
Erreur : échec du démarrage des conteneurs : app
root@bitkcor:/var/discourse# ./launcher stop app
+ /usr/bin/docker stop -t 10 app
app
root@bitkcor:/var/discourse# tail -f shared/data/log/var-log/postgres/current
tail : impossible d'ouvrir 'shared/data/log/var-log/postgres/current' pour lecture : Aucun fichier ou dossier de ce type
tail : aucun fichier restant

Quelqu’un a installé nginx sur votre serveur. Vous devriez supprimer tous les serveurs web superflus de votre VPS, puis suivre les instructions.

2 « J'aime »

nginx est installé car il s’agit d’un forum fonctionnel depuis quelques années. J’ai pris du retard avec Digital Ocean et le Droplet a été éteint. Après l’avoir rallumé, j’obtiens une erreur 521 en accédant à l’adresse. Lorsque je vais à l’adresse IP, je reviens à l’écran d’accueil.

La configuration de Cloudflare n’a pas changé.

Les serveurs de noms sont corrects chez NameCheap.

Je n’ai rien modifié depuis plusieurs mois, je ne sais donc pas où chercher.

Donc, nginx était installé mais pas en cours d’exécution. L’arrêt et le redémarrage du Droplet ont relancé le service, et il bloque maintenant le port web.

Vous devriez vraiment le désinstaller pour éviter que cela ne se produise à chaque redémarrage du serveur…

1 « J'aime »

Quelque chose a-t-il changé ? Lorsque j’ai configuré cela, l’écran de bienvenue d’nginx faisait partie du processus d’installation. J’avais l’impression que nginx était nécessaire pour exécuter Discourse. Comment le désinstaller ?

Veuillez modifier le chemin en
tail -f shared/standalone/log/var-log/postgres/current

Le chemin mentionné dans le guide fait référence à l’installation en deux conteneurs avec conteneur de données, tandis que votre installation semble être celle en un seul conteneur.

1 « J'aime »

C’est fait. Cela me donne ceci.

root@bitkcor:/var/discourse# tail -f shared/standalone/log/var-log/postgres/current
2020-07-19 03:33:56.864 UTC [19933] discourse@discourse LOG:  durée : 279.207 ms  instruction : COPY public.scheduler_stats (id, name, hostname, pid, duration_ms, live_slots_start, live_slots_finish, started_at, success, error) TO stdout;
2020-07-19 03:34:09.436 UTC [19933] discourse@discourse LOG:  durée : 12555.420 ms  instruction : COPY public.stylesheet_cache (id, target, digest, content, created_at, updated_at, theme_id, source_map) TO stdout;
2020-07-19 03:34:10.211 UTC [19933] discourse@discourse LOG:  durée : 727.297 ms  instruction : COPY public.unsubscribe_keys (key, user_id, created_at, updated_at, unsubscribe_key_type, topic_id, post_id) TO stdout;
2020-07-21 01:56:22.105 UTC [6388] discourse@discourse LOG:  durée : 167.853 ms  exécution <sans nom> : INSERT INTO "unsubscribe_keys" ("key", "user_id", "created_at", "updated_at", "unsubscribe_key_type") VALUES ('352fc5679876a1a700dfe7b45f8fa67612592421a3659e08ec5c2ccbf8f0e2d2', 2, '2020-07-21 01:56:21.932109', '2020-07-21 01:56:21.932109', 'digest') RETURNING "key"
2020-07-26 03:34:50.570 UTC [27570] discourse@discourse LOG:  durée : 147.456 ms  instruction : COPY public.post_revisions (id, user_id, post_id, modifications, number, created_at, updated_at, hidden) TO stdout;
2020-07-26 03:34:50.925 UTC [27570] discourse@discourse LOG:  durée : 349.648 ms  instruction : COPY public.post_search_data (post_id, search_data, raw_data, locale, version) TO stdout;
2020-07-26 03:34:51.236 UTC [27570] discourse@discourse LOG:  durée : 292.799 ms  instruction : COPY public.posts (id, user_id, topic_id, post_number, raw, cooked, created_at, updated_at, reply_to_post_number, reply_count, quote_count, deleted_at, off_topic_count, like_count, incoming_link_count, bookmark_count, avg_time, score, reads, post_type, sort_order, last_editor_id, hidden, hidden_reason_id, notify_moderators_count, spam_count, illegal_count, inappropriate_count, last_version_at, user_deleted, reply_to_user_id, percent_rank, notify_user_count, like_score, deleted_by_id, edit_reason, word_count, version, cook_method, wiki, baked_at, baked_version, hidden_at, self_edits, reply_quoted, via_email, raw_email, public_version, action_code, image_url, locked_by_id) TO stdout;
2020-07-26 03:34:51.547 UTC [27570] discourse@discourse LOG:  durée : 296.400 ms  instruction : COPY public.scheduler_stats (id, name, hostname, pid, duration_ms, live_slots_start, live_slots_finish, started_at, success, error) TO stdout;
2020-07-26 03:35:04.123 UTC [27570] discourse@discourse LOG:  durée : 12549.364 ms  instruction : COPY public.stylesheet_cache (id, target, digest, content, created_at, updated_at, theme_id, source_map) TO stdout;
2020-07-26 03:35:04.760 UTC [27570] discourse@discourse LOG:  durée : 588.788 ms  instruction : COPY public.unsubscribe_keys (key, user_id, created_at, updated_at, unsubscribe_key_type, topic_id, post_id) TO stdout;

Il semble que postgres soit en cours d’exécution. Avez-vous arrêté le conteneur Discourse avant de vérifier les journaux ?

./launcher stop app

Je n’arrive pas à l’arrêter.

root@bitkcor:/var/discourse# ./launcher stop app
+ /usr/bin/docker stop -t 10 app
app
root@bitkcor:/var/discourse# tail -f shared/standalone/log/var-log/postgres/current
2020-07-19 03:33:56.864 UTC [19933] discourse@discourse LOG:  durée : 279,207 ms  instruction : COPY public.scheduler_stats (id, name, hostname, pid, duration_ms, live_slots_start, live_slots_finish, started_at, success, error) TO stdout;
2020-07-19 03:34:09.436 UTC [19933] discourse@discourse LOG:  durée : 12555,420 ms  instruction : COPY public.stylesheet_cache (id, target, digest, content, created_at, updated_at, theme_id, source_map) TO stdout;
2020-07-19 03:34:10.211 UTC [19933] discourse@discourse LOG:  durée : 727,297 ms  instruction : COPY public.unsubscribe_keys (key, user_id, created_at, updated_at, unsubscribe_key_type, topic_id, post_id) TO stdout;
2020-07-21 01:56:22.105 UTC [6388] discourse@discourse LOG:  durée : 167,853 ms  exécution <unnamed> : INSERT INTO "unsubscribe_keys" ("key", "user_id", "created_at", "updated_at", "unsubscribe_key_type") VALUES ('352fc5679876a1a700dfe7b45f8fa67612592421a3659e08ec5c2ccbf8f0e2d2', 2, '2020-07-21 01:56:21.932109', '2020-07-21 01:56:21.932109', 'digest') RETURNING "key"
2020-07-26 03:34:50.570 UTC [27570] discourse@discourse LOG:  durée : 147,456 ms  instruction : COPY public.post_revisions (id, user_id, post_id, modifications, number, created_at, updated_at, hidden) TO stdout;
2020-07-26 03:34:50.925 UTC [27570] discourse@discourse LOG:  durée : 349,648 ms  instruction : COPY public.post_search_data (post_id, search_data, raw_data, locale, version) TO stdout;
2020-07-26 03:34:51.236 UTC [27570] discourse@discourse LOG:  durée : 292,799 ms  instruction : COPY public.posts (id, user_id, topic_id, post_number, raw, cooked, created_at, updated_at, reply_to_post_number, reply_count, quote_count, deleted_at, off_topic_count, like_count, incoming_link_count, bookmark_count, avg_time, score, reads, post_type, sort_order, last_editor_id, hidden, hidden_reason_id, notify_moderators_count, spam_count, illegal_count, inappropriate_count, last_version_at, user_deleted, reply_to_user_id, percent_rank, notify_user_count, like_score, deleted_by_id, edit_reason, word_count, version, cook_method, wiki, baked_at, baked_version, hidden_at, self_edits, reply_quoted, via_email, raw_email, public_version, action_code, image_url, locked_by_id) TO stdout;
2020-07-26 03:34:51.547 UTC [27570] discourse@discourse LOG:  durée : 296,400 ms  instruction : COPY public.scheduler_stats (id, name, hostname, pid, duration_ms, live_slots_start, live_slots_finish, started_at, success, error) TO stdout;
2020-07-26 03:35:04.123 UTC [27570] discourse@discourse LOG:  durée : 12549,364 ms  instruction : COPY public.stylesheet_cache (id, target, digest, content, created_at, updated_at, theme_id, source_map) TO stdout;
2020-07-26 03:35:04.760 UTC [27570] discourse@discourse LOG:  durée : 588,788 ms  instruction : COPY public.unsubscribe_keys (key, user_id, created_at, updated_at, unsubscribe_key_type, topic_id, post_id) TO stdout;c

L’écran de bienvenue de nginx n’a jamais fait partie du processus. Vous vous trompez de souvenir.

Nginx est également installé dans le conteneur Docker ; il n’a jamais été requis en dehors de celui-ci.

Vous avez deux instances de Nginx écoutant sur le même port. Si Discourse est le seul service sur ce serveur, l’instance Nginx externe au conteneur peut être supprimée en toute sécurité.

Désolé pour cela.

Savez-vous où il pourrait se trouver ?

En supposant que le serveur soit sous Ubuntu, exécutez ceci en dehors du conteneur :

sudo apt-get remove nginx nginx-common

Ouf. Maintenant, le site est inaccessible. Restauration d’une sauvegarde en espérant que ça passe.

C’est en fait une bonne nouvelle, cela signifie que l’instance nginx située en dehors du conteneur ne capture plus le port.

Une fois désinstallé, vous devez redémarrer le serveur afin que tout puisse démarrer correctement.

3 « J'aime »