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.