Forum hors ligne en raison d'échecs de reconstruction sur Tests-Pass

Suite à la discussion sur Mise à jour PostgreSQL 13 :

J’ai rencontré des problèmes lors de la mise à jour de 2.7.0beta1 Tests-Pass afin de supprimer certains plugins problématiques.

J’ai modifié notre fichier app.yml pour rester sur PostgreSQL 12. La reconstruction a échoué et j’observe :

ÉCHEC
--------------------
Pups::ExecError : su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' a échoué avec le retour #<Process::Status: pid 1637 exit 2>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
Exécution échouée avec les paramètres "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
I, [2020-12-11T18:36:32.257585 #1]  INFO -- : Terminaison des processus asynchrones
df2fcc37c368d13eac3b4a6db4b592028405a0ea91ff39fb8cbb8bcbdc4846fd
** ÉCHEC DE L'INITIALISATION ** 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.
Journal complet

$ sudo ./launcher rebuild app
Vérification que le lanceur est à jour
Récupération de l’origine
Le lanceur est à jour
Arrêt de l’ancien conteneur

  • /usr/bin/docker stop -t 60 app
    app
    cd /pups && git pull && /pups/bin/pups --stdin
    Déjà à jour.
    I, [2020-12-11T18:35:42.128663 #1] INFO – : Chargement de --stdin
    I, [2020-12-11T18:35:42.145184 #1] INFO – : > DEBIAN_FRONTEND=noninteractive apt-get purge -y postgresql-13 postgresql-client-13 postgresql-contrib-13
    I, [2020-12-11T18:35:47.812698 #1] INFO – : Lecture des listes de paquets…
    Construction de l’arbre des dépendances…
    Lecture des informations d’état…
    Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
    libllvm7 pgdg-keyring postgresql-client-common postgresql-common ssl-cert
    Utilisez ‘apt autoremove’ pour les supprimer.
    Les paquets suivants seront SUPPRIMÉS :
    postgresql-13* postgresql-client-13*
    0 mis à jour, 0 nouvellement installés, 2 à supprimer et 0 non mis à jour.
    Après cette opération, 54,3 Mo d’espace disque seront libérés.
    (Lecture de la base de données … 43863 fichiers et répertoires actuellement installés.)
    Suppression de postgresql-13 (13.1-1.pgdg100+1) …
    invoke-rc.d : impossible de déterminer le niveau d’exécution actuel
    invoke-rc.d : la politique policy-rc.d a refusé l’exécution de l’arrêt.
    Suppression de postgresql-client-13 (13.1-1.pgdg100+1) …
    Traitement des déclencheurs pour postgresql-common (223.pgdg100+1) …
    Construction des dictionnaires PostgreSQL à partir des paquets myspell/hunspell installés…
    Suppression des fichiers de dictionnaire obsolètes :
    (Lecture de la base de données … 42050 fichiers et répertoires actuellement installés.)
    Nettoyage des fichiers de configuration pour postgresql-13 (13.1-1.pgdg100+1) …
    Suppression du cluster main…

I, [2020-12-11T18:35:47.813593 #1] INFO – : > apt-get update && apt-get install -y postgresql-12 postgresql-client-12 postgresql-contrib-12
debconf : report de la configuration des paquets car apt-utils n’est pas installé
I, [2020-12-11T18:36:26.125598 #1] INFO – : Récupération de 1 : Index of /pub/repos/apt/ buster-pgdg InRelease [104 ko]
Récupération de 2 : Index of /debian-security buster/updates InRelease [65,4 ko]
Réponse de 3 : Index of /debian buster InRelease
Récupération de 4 : Index of /debian buster-updates InRelease [51,9 ko]
Réponse de 5 : https://deb.nodesource.com/node_10.x buster InRelease
Récupération de 6 : Index of /pub/repos/apt/ buster-pgdg/main amd64 Packages [216 ko]
Récupération de 7 : Index of /debian-security buster/updates/main amd64 Packages [254 ko]
690 ko récupérés en 2 s (342 ko/s)
Lecture des listes de paquets…
Lecture des listes de paquets…
Construction de l’arbre des dépendances…
Lecture des informations d’état…
Paquets suggérés :
postgresql-doc-12
Les paquets NOUVEAUX suivants seront installés :
postgresql-12 postgresql-client-12
0 mis à jour, 2 nouvellement installés, 0 à supprimer et 5 non mis à jour.
Nécessite 16,1 Mo d’archives.
Après cette opération, 54,0 Mo d’espace disque supplémentaire seront utilisés.
Récupération de 1 : Index of /pub/repos/apt/ buster-pgdg/main amd64 postgresql-client-12 amd64 12.5-1.pgdg100+1 [1 422 ko]
Récupération de 2 : Index of /pub/repos/apt/ buster-pgdg/main amd64 postgresql-12 amd64 12.5-1.pgdg100+1 [14,7 Mo]
16,1 Mo récupérés en 5 s (3 052 ko/s)
Sélection du paquet postgresql-client-12 précédemment non sélectionné.
(Lecture de la base de données … 42050 fichiers et répertoires actuellement installés.)
Préparation du dépaquetage de …/postgresql-client-12_12.5-1.pgdg100+1_amd64.deb …
Dépaquetage de postgresql-client-12 (12.5-1.pgdg100+1) …
Sélection du paquet postgresql-12 précédemment non sélectionné.
Préparation du dépaquetage de …/postgresql-12_12.5-1.pgdg100+1_amd64.deb …
Dépaquetage de postgresql-12 (12.5-1.pgdg100+1) …
Configuration de postgresql-client-12 (12.5-1.pgdg100+1) …
update-alternatives : utilisation de /usr/share/postgresql/12/man/man1/psql.1.gz pour fournir /usr/share/man/man1/psql.1.gz (psql.1.gz) en mode automatique
Configuration de postgresql-12 (12.5-1.pgdg100+1) …
Création du nouveau cluster PostgreSQL 12/main …
/usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/12/main --auth-local peer --auth-host md5
Les fichiers appartenant à ce système de base de données appartiendront à l’utilisateur « postgres ».
Cet utilisateur doit également posséder le processus serveur.

Le cluster de base de données sera initialisé avec la locale « C.UTF-8 ».
L’encodage par défaut de la base de données est donc défini sur « UTF8 ».
La configuration par défaut de recherche textuelle sera définie sur « english ».

Les sommes de contrôle des pages de données sont désactivées.

Correction des permissions sur le répertoire existant /var/lib/postgresql/12/main … ok
Création des sous-répertoires … ok
Sélection de l’implémentation de la mémoire partagée dynamique … posix
Sélection de max_connections par défaut … 100
Sélection de shared_buffers par défaut … 128 Mo
Sélection du fuseau horaire par défaut … Etc/UTC
Création des fichiers de configuration … ok
Exécution du script d’initialisation … ok
Exécution de l’initialisation post-initialisation … ok
Synchronisation des données sur le disque … ok

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

pg_ctlcluster 12 main start

Ver Cluster Port Statut Propriétaire Répertoire de données Fichier journal
12 main 5432 arrêté postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
update-alternatives : utilisation de /usr/share/postgresql/12/man/man1/postmaster.1.gz pour fournir /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) en mode automatique
invoke-rc.d : impossible de déterminer le niveau d’exécution actuel
invoke-rc.d : la politique policy-rc.d a refusé l’exécution du démarrage.
Traitement des déclencheurs pour postgresql-common (223.pgdg100+1) …
Construction des dictionnaires PostgreSQL à partir des paquets myspell/hunspell installés…
Suppression des fichiers de dictionnaire obsolètes :

I, [2020-12-11T18:36:26.126230 #1] INFO – : > mkdir -p /shared/postgres_run
I, [2020-12-11T18:36:26.135185 #1] INFO – :
I, [2020-12-11T18:36:26.135798 #1] INFO – : > chown postgres:postgres /shared/postgres_run
I, [2020-12-11T18:36:26.146730 #1] INFO – :
I, [2020-12-11T18:36:26.147724 #1] INFO – : > chmod 775 /shared/postgres_run
I, [2020-12-11T18:36:26.161275 #1] INFO – :
I, [2020-12-11T18:36:26.162652 #1] INFO – : > rm -fr /var/run/postgresql
I, [2020-12-11T18:36:26.175256 #1] INFO – :
I, [2020-12-11T18:36:26.176159 #1] INFO – : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-12-11T18:36:26.184044 #1] INFO – :
I, [2020-12-11T18:36:26.184889 #1] INFO – : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres déjà en cours d’exécution arrêt du conteneur ; exit 1
2020/12/11 18:36:26 socat[1595] E connect(6, AF=1 “/shared/postgres_run/.s.PGSQL.5432”, 36) : Aucun fichier ou répertoire de ce type
I, [2020-12-11T18:36:26.198536 #1] INFO – :
I, [2020-12-11T18:36:26.198946 #1] INFO – : > rm -fr /shared/postgres_run/.s*
I, [2020-12-11T18:36:26.213075 #1] INFO – :
I, [2020-12-11T18:36:26.217247 #1] INFO – : > rm -fr /shared/postgres_run/.pid
I, [2020-12-11T18:36:26.234701 #1] INFO – :
I, [2020-12-11T18:36:26.235766 #1] INFO – : > mkdir -p /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-12-11T18:36:26.252691 #1] INFO – :
I, [2020-12-11T18:36:26.253254 #1] INFO – : > chown postgres:postgres /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-12-11T18:36:26.265460 #1] INFO – :
I, [2020-12-11T18:36:26.305117 #1] INFO – : Fichier > /etc/service/postgres/run chmod : +x chown :
I, [2020-12-11T18:36:26.340226 #1] INFO – : Fichier > /etc/runit/3.d/99-postgres chmod : +x chown :
I, [2020-12-11T18:36:26.341055 #1] INFO – : > chown -R root /var/lib/postgresql/12/main
I, [2020-12-11T18:36:26.395341 #1] INFO – :
I, [2020-12-11T18:36:26.397567 #1] INFO – : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-12-11T18:36:26.410438 #1] INFO – :
I, [2020-12-11T18:36:26.410620 #1] INFO – : > chown -R postgres:postgres /shared/postgres_data
I, [2020-12-11T18:36:26.483230 #1] INFO – :
I, [2020-12-11T18:36:26.483480 #1] INFO – : > chown -R postgres:postgres /var/run/postgresql
I, [2020-12-11T18:36:26.498060 #1] INFO – :
I, [2020-12-11T18:36:26.498607 #1] INFO – : Remplacement de data_directory = ‘/var/lib/postgresql/12/main’ par data_directory = ‘/shared/postgres_data’ dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.499830 #1] INFO – : Remplacement de (?-mix:#?listen_addresses =.) par listen_addresses = '
’ dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.501216 #1] INFO – : Remplacement de (?-mix:#?synchronous_commit =.) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.503288 #1] INFO – : Remplacement de (?-mix:#?shared_buffers =.) par shared_buffers = $db_shared_buffers dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.503960 #1] INFO – : Remplacement de (?-mix:#?work_mem =.) par work_mem = $db_work_mem dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.505121 #1] INFO – : Remplacement de (?-mix:#?default_text_search_config =.) par default_text_search_config = ‘$db_default_text_search_config’ dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.509117 #1] INFO – : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-12-11T18:36:26.529609 #1] INFO – :
I, [2020-12-11T18:36:26.530771 #1] INFO – : Remplacement de (?-mix:#?checkpoint_segments =.) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.533329 #1] INFO – : Remplacement de (?-mix:#?logging_collector =.) par logging_collector = $db_logging_collector dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.534342 #1] INFO – : Remplacement de (?-mix:#?log_min_duration_statement =.) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/12/main/postgresql.conf
I, [2020-12-11T18:36:26.535368 #1] INFO – : Remplacement de (?-mix:^#local +replication +postgres +peer$) par local replication postgres peer dans /etc/postgresql/12/main/pg_hba.conf
I, [2020-12-11T18:36:26.536115 #1] INFO – : Remplacement de (?-mix:^host.*all.*all.127.$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/12/main/pg_hba.conf
I, [2020-12-11T18:36:26.536854 #1] INFO – : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/12/bin/postmaster -D /etc/postgresql/12/main
I, [2020-12-11T18:36:26.542081 #1] INFO – : > sleep 5
2020-12-11 18:36:26.649 UTC [1611] FATAL : les fichiers de base de données sont incompatibles avec le serveur
2020-12-11 18:36:26.649 UTC [1611] DÉTAIL : Le répertoire de données a été initialisé par PostgreSQL version 13, qui n’est pas compatible avec cette version 12.5 (Debian 12.5-1.pgdg100+1).
I, [2020-12-11T18:36:31.555237 #1] INFO – :
I, [2020-12-11T18:36:31.556039 #1] INFO – : > su postgres -c ‘createdb discourse’ || true
createdb : erreur : impossible de se connecter à la base de données template1 : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
Le serveur est-il en cours d’exécution localement et accepte-t-il
des connexions sur le socket de domaine Unix “/var/run/postgresql/.s.PGSQL.5432” ?
I, [2020-12-11T18:36:31.718921 #1] INFO – :
I, [2020-12-11T18:36:31.719321 #1] INFO – : > su postgres -c ‘psql discourse -c “create user discourse;”’ || true
psql : erreur : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
Le serveur est-il en cours d’exécution localement et accepte-t-il
des connexions sur le socket de domaine Unix “/var/run/postgresql/.s.PGSQL.5432” ?
I, [2020-12-11T18:36:31.892475 #1] INFO – :
I, [2020-12-11T18:36:31.893214 #1] INFO – : > su postgres -c ‘psql discourse -c “grant all privileges on database discourse to discourse;”’ || true
psql : erreur : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
Le serveur est-il en cours d’exécution localement et accepte-t-il
des connexions sur le socket de domaine Unix “/var/run/postgresql/.s.PGSQL.5432” ?
I, [2020-12-11T18:36:32.067027 #1] INFO – :
I, [2020-12-11T18:36:32.067426 #1] INFO – : > su postgres -c ‘psql discourse -c “alter schema public owner to discourse;”’
psql : erreur : impossible de se connecter au serveur : Aucun fichier ou répertoire de ce type
Le serveur est-il en cours d’exécution localement et accepte-t-il
des connexions sur le socket de domaine Unix “/var/run/postgresql/.s.PGSQL.5432” ?
I, [2020-12-11T18:36:32.256513 #1] INFO – :

ÉCHEC

Pups::ExecError : su postgres -c ‘psql discourse -c “alter schema public owner to discourse;”’ a échoué avec le retour #<Process::Status: pid 1637 exit 2>
Emplacement de l’échec : /pups/lib/pups/exec_command.rb:112:in `spawn’
Exécution échouée avec les paramètres “su postgres -c ‘psql $db_name -c "alter schema public owner to $db_user;"’”
I, [2020-12-11T18:36:32.257585 #1] INFO – : Terminaison des processus asynchrones
df2fcc37c368d13eac3b4a6db4b592028405a0ea91ff39fb8cbb8bcbdc4846fd
** ÉCHEC DE L’INITIALISATION ** 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.

Je suis un peu confus, mais il semble que nous soyons déjà sur la version 13 de PostgreSQL. J’ai restauré app.yml pour la base de données PostgreSQL par défaut, relancé la reconstruction et le forum est de nouveau opérationnel. Problème résolu.