Échec de Bootstrap, veuillez aider :(

J’essaie de mettre à jour et Discourse échoue au démarrage. Quelqu’un peut-il me conseiller sur les étapes à suivre pour remettre mon site en ligne ? J’ai exécuté discourse-doctor, mais il n’a pas non plus pu reconstruire. Je copie ci-dessous les journaux de ma (troisième ?) tentative :

 I, [2020-04-11T13:05:40.743940 #1]  INFO -- : Chargement depuis --stdin
I, [2020-04-11T13:05:40.750131 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2020-04-11T13:05:40.800464 #1]  INFO -- : Génération des paramètres régionaux (cela peut prendre un certain temps)...
Génération terminée.

I, [2020-04-11T13:05:40.800750 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2020-04-11T13:05:40.804473 #1]  INFO -- : 
I, [2020-04-11T13:05:40.804720 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-04-11T13:05:40.809297 #1]  INFO -- : 
I, [2020-04-11T13:05:40.809573 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2020-04-11T13:05:40.813859 #1]  INFO -- : 
I, [2020-04-11T13:05:40.814113 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2020-04-11T13:05:40.818749 #1]  INFO -- : 
I, [2020-04-11T13:05:40.819005 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-04-11T13:05:40.823141 #1]  INFO -- : 
I, [2020-04-11T13:05:40.823401 #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êtez le conteneur ; exit 1
2020/04/11 13:05:40 socat[26] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36) : Connexion refusée
I, [2020-04-11T13:05:40.831215 #1]  INFO -- : 
I, [2020-04-11T13:05:40.831436 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-04-11T13:05:40.837350 #1]  INFO -- : 
I, [2020-04-11T13:05:40.837549 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-04-11T13:05:40.843241 #1]  INFO -- : 
I, [2020-04-11T13:05:40.843486 #1]  INFO -- : > mkdir -p /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-04-11T13:05:40.848311 #1]  INFO -- : 
I, [2020-04-11T13:05:40.848643 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-04-11T13:05:40.853421 #1]  INFO -- : 
I, [2020-04-11T13:05:40.863897 #1]  INFO -- : Fichier > /etc/service/postgres/run  chmod: +x  chown: 
I, [2020-04-11T13:05:40.873965 #1]  INFO -- : Fichier > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2020-04-11T13:05:40.884485 #1]  INFO -- : Fichier > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2020-04-11T13:05:40.895036 #1]  INFO -- : Fichier > /root/upgrade_postgres  chmod: +x  chown: 
I, [2020-04-11T13:05:40.895478 #1]  INFO -- : > chown -R root /var/lib/postgresql/10/main
I, [2020-04-11T13:06:09.192272 #1]  INFO -- : 
I, [2020-04-11T13:06:09.192593 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/10/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-04-11T13:06:09.197837 #1]  INFO -- : 
I, [2020-04-11T13:06:09.197992 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2020-04-11T13:06:09.228153 #1]  INFO -- : 
I, [2020-04-11T13:06:09.228375 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2020-04-11T13:06:09.233425 #1]  INFO -- : 
I, [2020-04-11T13:06:09.233760 #1]  INFO -- : > /root/upgrade_postgres
I, [2020-04-11T13:06:09.243357 #1]  INFO -- : 
I, [2020-04-11T13:06:09.243596 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2020-04-11T13:06:09.249007 #1]  INFO -- : 
I, [2020-04-11T13:06:09.249495 #1]  INFO -- : Remplacement de data_directory = '/var/lib/postgresql/10/main' par data_directory = '/shared/postgres_data' dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.272106 #1]  INFO -- : Remplacement de (?-mix:#?listen_addresses *=.*) par listen_addresses = '*' dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.272853 #1]  INFO -- : Remplacement de (?-mix:#?synchronous_commit *=.*) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.273496 #1]  INFO -- : Remplacement de (?-mix:#?shared_buffers *=.*) par shared_buffers = $db_shared_buffers dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.274139 #1]  INFO -- : Remplacement de (?-mix:#?work_mem *=.*) par work_mem = $db_work_mem dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.274757 #1]  INFO -- : Remplacement de (?-mix:#?default_text_search_config *=.*) par default_text_search_config = '$db_default_text_search_config' dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.275288 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-04-11T13:06:09.282029 #1]  INFO -- : 
I, [2020-04-11T13:06:09.282556 #1]  INFO -- : Remplacement de (?-mix:#?max_wal_senders *=.*) par max_wal_senders = $db_max_wal_senders dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.330309 #1]  INFO -- : Remplacement de (?-mix:#?wal_level *=.*) par wal_level = $db_wal_level dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.331016 #1]  INFO -- : Remplacement de (?-mix:#?checkpoint_segments *=.*) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.331655 #1]  INFO -- : Remplacement de (?-mix:#?logging_collector *=.*) par logging_collector = $db_logging_collector dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.332347 #1]  INFO -- : Remplacement de (?-mix:#?log_min_duration_statement *=.*) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/10/main/postgresql.conf
I, [2020-04-11T13:06:09.333020 #1]  INFO -- : Remplacement de (?-mix:^#local +replication +postgres +peer$) par local replication postgres peer dans /etc/postgresql/10/main/pg_hba.conf
I, [2020-04-11T13:06:09.333660 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*127.*$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/10/main/pg_hba.conf
I, [2020-04-11T13:06:09.334205 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main
I, [2020-04-11T13:06:09.338659 #1]  INFO -- : > sleep 5
2020-04-11 13:06:09.481 UTC [49] LOG:  écoute sur l'adresse IPv4 "0.0.0.0", port 5432
2020-04-11 13:06:09.482 UTC [49] LOG:  écoute sur l'adresse IPv6 "::", port 5432
2020-04-11 13:06:09.544 UTC [49] LOG:  écoute sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2020-04-11 13:06:10.813 UTC [52] LOG:  l'arrêt du système de base de données a été interrompu ; dernier état connu actif à 2020-04-11 12:42:48 UTC
2020-04-11 13:06:12.356 UTC [52] LOG:  le système de base de données n'a pas été correctement arrêté ; récupération automatique en cours
2020-04-11 13:06:12.416 UTC [52] LOG:  reprise à partir de 84/BD1A85B0
2020-04-11 13:06:12.446 UTC [52] LOG:  enregistrement invalide à 84/BD7B3570 : longueur souhaitée 24, obtenue 0
2020-04-11 13:06:12.446 UTC [52] LOG:  reprise terminée à 84/BD7B3530
2020-04-11 13:06:12.446 UTC [52] LOG:  dernière transaction terminée à 2020-04-11 11:53:53.069757+00
I, [2020-04-11T13:06:14.343128 #1]  INFO -- : 
I, [2020-04-11T13:06:14.343449 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2020-04-11 13:06:14.409 UTC [56] postgres@postgres FATAL:  le système de base de données est en cours de démarrage
2020-04-11 13:06:14.411 UTC [57] postgres@template1 FATAL:  le système de base de données est en cours de démarrage
createdb : impossible de se connecter à la base de données template1 : FATAL:  le système de base de données est en cours de démarrage
I, [2020-04-11T13:06:14.413548 #1]  INFO -- : 
I, [2020-04-11T13:06:14.413822 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2020-04-11 13:06:14.493 UTC [68] postgres@discourse FATAL:  le système de base de données est en cours de démarrage
psql : FATAL:  le système de base de données est en cours de démarrage
I, [2020-04-11T13:06:14.495917 #1]  INFO -- : 
I, [2020-04-11T13:06:14.496250 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
2020-04-11 13:06:14.574 UTC [79] postgres@discourse FATAL:  le système de base de données est en cours de démarrage
psql : FATAL:  le système de base de données est en cours de démarrage
I, [2020-04-11T13:06:14.576284 #1]  INFO -- : 
I, [2020-04-11T13:06:14.576674 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
2020-04-11 13:06:14.655 UTC [90] postgres@discourse FATAL:  le système de base de données est en cours de démarrage
psql : FATAL:  le système de base de données est en cours de démarrage
I, [2020-04-11T13:06:14.658074 #1]  INFO -- : 
I, [2020-04-11T13:06:14.658635 #1]  INFO -- : Terminaison des processus asynchrones
I, [2020-04-11T13:06:14.658722 #1]  INFO -- : Envoi de INT à HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49
2020-04-11 13:06:14.658 UTC [49] LOG:  demande d'arrêt rapide reçue
I, [2020-04-11T13:06:24.659800 #1]  INFO -- : HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid:49 ne s'est pas terminé correctement, forçage de l'arrêt !


ÉCHEC
--------------------
Pups::ExecError : échec de su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' avec le code de retour #<Process::Status: pid 80 exit 2>
Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'
exec a échoué avec les paramètres "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
3956a617d80571dd1ef87fcf7d23a319190bd909477e703ccb22cb25d0e137c8
** É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.

Il semble que votre base de données soit corrompue. Avez-vous suffisamment d’espace disque ? (Je doute que ce soit le problème, mais ce serait idéal si c’était le cas.)

La solution la plus simple consiste probablement à supprimer le répertoire de la base de données, ce qui permettra de créer une nouvelle base de données. Ensuite, vous pourrez restaurer à partir de votre dernière sauvegarde.

Pour vous donner des nouvelles maintenant que l’orage est passé : le redémarrage du serveur a permis à l’application de se reconstruire. C’était une suggestion de @merefield que j’ai trouvée ailleurs ici, et que j’ai appliquée comme un dernier recours.

Donc, ce qui gênait Postgres reste un mystère pour moi. Maintenant, j’ai de nouveaux problèmes, mais moins critiques. Du bon côté, je n’ai pas eu besoin de détruire ma grande base de données.

@pfaffman, nous disposons d’une quantité substantielle de stockage, nous sommes loin d’atteindre la limite.

Merci pour tous vos retours, j’espère que mon expérience douloureuse aidera quelqu’un d’autre :slight_smile:

Salut,

nous venons de recevoir le même message lors d’une reconstruction pour une mise à niveau de version…

… et nous avons pensé que la même chose nous arrivait – pour la première fois –

… et nous avons cherché à contrecœur le répertoire de sauvegarde ;]. Une nouvelle sauvegarde était là, donc nous nous sommes un peu détendus.

Nous voulions également partager que, bien que nous n’ayons pas redémarré le serveur, nous avons attendu un peu, échoué à reconstruire une deuxième fois avec le même message d’erreur invalid record length at, mais maintenant le processus de mise à jour semble fonctionner en essayant une troisième fois. Le serveur dispose de suffisamment d’espace disque, mais est actuellement un peu sous pression en termes d’E/S.

Peut-être que cela aidera d’autres personnes qui pourraient se retrouver dans la même situation. D’après cette expérience, nous conseillerions a) d’atténuer la surconsommation de ressources sur le système hôte avant d’essayer une autre reconstruction, et b) de ne pas abandonner trop tôt.

Cordialement,
Andreas.

Eh bien, il est indiqué qu’une récupération est en cours, alors peut-être pourriez-vous la laisser récupérer ? Je pense que vous pourriez redémarrer l’ancien conteneur pour lui permettre de le faire.

Est-ce que cela a été résolu ?

Tout a bien fonctionné et la mise à niveau s’est terminée sans erreur à la troisième tentative. Merci et bonne année !

Des problèmes similaires précédemment rencontrés ont été résolus en ajustant une valeur de délai d’attente :

Ou en attendant :