Update fehlgeschlagen (postgresql)

Das neueste Update (inklusive PostgreSQL) führt zu einem Fehler:

root@community:/var/discourse# ./launcher rebuild app

Sicherstellen, dass der Launcher aktuell ist

Abrufen von origin

Der Launcher ist auf dem neuesten Stand

Stoppen des alten Containers

+ /usr/bin/docker stop -t 60 app

app

cd /pups && git pull && /pups/bin/pups --stdin

Bereits auf dem neuesten Stand.

I, [2020-06-03T15:38:58.391364 #1] INFO -- : Laden von --stdin

I, [2020-06-03T15:38:58.398128 #1] INFO -- : 

I, [2020-06-03T15:38:58.731357 #1] INFO -- : Erstellen der Lokales (dies kann eine Weile dauern)...

Erstellung abgeschlossen.

I, [2020-06-03T15:38:58.731849 #1] INFO -- : 

I, [2020-06-03T15:38:58.751775 #1] INFO -- : 

I, [2020-06-03T15:38:58.756078 #1] INFO -- : 

I, [2020-06-03T15:38:58.765806 #1] INFO -- : 

I, [2020-06-03T15:38:58.766148 #1] INFO -- : 

I, [2020-06-03T15:38:58.767966 #1] INFO -- : 

I, [2020-06-03T15:38:58.768305 #1] INFO -- : 

I, [2020-06-03T15:38:58.770246 #1] INFO -- : 

I, [2020-06-03T15:38:58.770626 #1] INFO -- : 

I, [2020-06-03T15:38:58.785523 #1] INFO -- : 

I, [2020-06-03T15:38:58.785863 #1] INFO -- : 

2020/06/03 15:38:58 socat[26] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Datei oder Verzeichnis nicht gefunden

I, [2020-06-03T15:38:58.911895 #1] INFO -- : 

I, [2020-06-03T15:38:58.912203 #1] INFO -- : 

I, [2020-06-03T15:38:58.914376 #1] INFO -- : 

I, [2020-06-03T15:38:58.914625 #1] INFO -- : 

I, [2020-06-03T15:38:58.916280 #1] INFO -- : 

I, [2020-06-03T15:38:58.916527 #1] INFO -- : 

I, [2020-06-03T15:38:58.917967 #1] INFO -- : 

I, [2020-06-03T15:38:58.918303 #1] INFO -- : 

I, [2020-06-03T15:38:58.919709 #1] INFO -- : 

I, [2020-06-03T15:38:58.925728 #1] INFO -- : Datei 

I, [2020-06-03T15:38:58.928444 #1] INFO -- : Datei 

I, [2020-06-03T15:38:58.931357 #1] INFO -- : Datei 

I, [2020-06-03T15:38:58.934190 #1] INFO -- : Datei 

I, [2020-06-03T15:38:58.934528 #1] INFO -- : 

I, [2020-06-03T15:40:44.749613 #1] INFO -- : 

I, [2020-06-03T15:40:44.750250 #1] INFO -- : 

I, [2020-06-03T15:40:44.751653 #1] INFO -- : 

I, [2020-06-03T15:40:44.751914 #1] INFO -- : 

I, [2020-06-03T15:40:47.940064 #1] INFO -- : 

I, [2020-06-03T15:40:47.940713 #1] INFO -- : 

I, [2020-06-03T15:40:47.942521 #1] INFO -- : 

I, [2020-06-03T15:40:47.942924 #1] INFO -- : 

initdb: Warnung: Authentifizierung „trust“ für lokale Verbindungen aktiviert

Dies können Sie ändern, indem Sie pg_hba.conf bearbeiten oder beim nächsten Aufruf von initdb die Option -A, --auth-local oder --auth-host verwenden.

debconf: Paketkonfiguration wird verzögert, da apt-utils nicht installiert ist

I, [2020-06-03T15:42:45.495966 #1] INFO -- : Upgrade von PostgreSQL von Version 10 auf 12

Die Dateien dieses Datenbanksystems gehören dem Benutzer „postgres“.

Dieser Benutzer muss auch den Serverprozess besitzen.

Das Datenbankcluster wird mit der Lokalisierung „en_US.UTF-8“ initialisiert.

Die Standarddatenbankkodierung wurde entsprechend auf „UTF8“ gesetzt.

Die Standardkonfiguration für die Textsuche wird auf „english“ gesetzt.

Prüfsummen für Datenseiten sind deaktiviert.

Berechtigungskorrektur für das bestehende Verzeichnis /shared/postgres_data_new ... ok

Erstellen von Unterverzeichnissen ... ok

Auswahl der Implementierung für dynamischen gemeinsamen Speicher ... posix

Auswahl der Standardmax_connections ... 100

Auswahl der Standardshared_buffers ... 128MB

Auswahl der Standardzeitzone ... Etc/UTC

Erstellen der Konfigurationsdateien ... ok

Ausführen des Bootstrap-Skripts ... ok

Durchführen der Post-Bootstrap-Initialisierung ... ok

Synchronisieren der Daten auf die Festplatte ... ok

Erfolg. Sie können den Datenbankserver jetzt mit folgendem Befehl starten:

/usr/lib/postgresql/12/bin/pg_ctl -D /shared/postgres_data_new -l logfile start

Get:1 http://security.debian.org/debian-security buster/updates InRelease [65,4 kB]

Hit:2 http://deb.debian.org/debian buster InRelease

Get:3 http://deb.debian.org/debian buster-updates InRelease [49,3 kB]

Get:4 https://deb.nodesource.com/node_10.x buster InRelease [4.584 B]

Get:5 http://apt.postgresql.org/pub/repos/apt buster-pgdg InRelease [84,6 kB]

Get:6 http://security.debian.org/debian-security buster/updates/main amd64 Packages [201 kB]

Get:7 https://deb.nodesource.com/node_10.x buster/main amd64 Packages [768 B]

Get:8 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 Packages [171 kB]

Heruntergeladene 577 kB in 1s (698 kB/s)

Lesen der Paketlisten...

Lesen der Paketlisten...

Erstellen des Abhängigkeitsbaums...

Lesen des Status-Informationssatzes...

Folgende zusätzliche Pakete werden installiert:

postgresql-client-10

Vorgeschlagene Pakete:

postgresql-doc-10

Folgende NEUE Pakete werden installiert:

postgresql-10 postgresql-client-10

0 aktualisiert, 2 neu installiert, 0 zu entfernen und 10 nicht aktualisiert.

Es müssen 6.390 kB aus den Archiven heruntergeladen werden.

Nach diesem Vorgang werden 30,6 MB zusätzlicher Festplattenspeicher belegt.

Get:1 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-client-10 amd64 10.13-1.pgdg100+1 [1.428 kB]

Get:2 http://apt.postgresql.org/pub/repos/apt buster-pgdg/main amd64 postgresql-10 amd64 10.13-1.pgdg100+1 [4.961 kB]

Heruntergeladene 6.390 kB in 0s (38,2 MB/s)

Auswahl des zuvor nicht ausgewählten Pakets postgresql-client-10.

(Lesen der Datenbank ... 43929 Dateien und Verzeichnisse derzeit installiert.)

Vorbereiten zum Entpacken von .../postgresql-client-10_10.13-1.pgdg100+1_amd64.deb ...

Entpacken von postgresql-client-10 (10.13-1.pgdg100+1) ...

Auswahl des zuvor nicht ausgewählten Pakets postgresql-10.

Vorbereiten zum Entpacken von .../postgresql-10_10.13-1.pgdg100+1_amd64.deb ...

Entpacken von postgresql-10 (10.13-1.pgdg100+1) ...

Einrichten von postgresql-client-10 (10.13-1.pgdg100+1) ...

update-alternatives: Warnung: Erzwingen der Neuinstallation der Alternative /usr/share/postgresql/12/man/man1/psql.1.gz, da die Linkgruppe psql.1.gz defekt ist

Einrichten von postgresql-10 (10.13-1.pgdg100+1) ...

Erstellen eines neuen PostgreSQL-Clusters 10/main ...

/usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --auth-local peer --auth-host md5

Die Dateien dieses Datenbanksystems gehören dem Benutzer „postgres“.

Dieser Benutzer muss auch den Serverprozess besitzen.

Das Datenbankcluster wird mit der Lokalisierung „C.UTF-8“ initialisiert.

Die Standarddatenbankkodierung wurde entsprechend auf „UTF8“ gesetzt.

Die Standardkonfiguration für die Textsuche wird auf „english“ gesetzt.

Prüfsummen für Datenseiten sind deaktiviert.

Berechtigungskorrektur für das bestehende Verzeichnis /var/lib/postgresql/10/main ... ok

Erstellen von Unterverzeichnissen ... ok

Auswahl der Standardmax_connections ... 100

Auswahl der Standardshared_buffers ... 128MB

Auswahl der Standardzeitzone ... Etc/UTC

Auswahl der Implementierung für dynamischen gemeinsamen Speicher ... posix

Erstellen der Konfigurationsdateien ... ok

Ausführen des Bootstrap-Skripts ... ok

Durchführen der Post-Bootstrap-Initialisierung ... ok

Synchronisieren der Daten auf die Festplatte ... ok

Erfolg. Sie können den Datenbankserver jetzt mit folgendem Befehl starten:

pg_ctlcluster 10 main start

Warnung: Das ausgewählte stats_temp_directory /var/run/postgresql/10-main.pg_stat_tmp

ist für den Cluster-Besitzer nicht beschreibbar. Diese Einstellung wird nicht in

postgresql.conf aufgenommen.

Ver Cluster Port Status Owner Data directory Log file

10 main 5433 down postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log

update-alternatives: Warnung: Erzwingen der Neuinstallation der Alternative /usr/share/postgresql/12/man/man1/postmaster.1.gz, da die Linkgruppe postmaster.1.gz defekt ist

invoke-rc.d: aktueller Runlevel konnte nicht ermittelt werden

invoke-rc.d: policy-rc.d hat die Ausführung von start verweigert.

Verarbeiten der Trigger für postgresql-common (213.pgdg100+1) ...

Erstellen von PostgreSQL-Wörterbüchern aus installierten myspell/hunspell-Paketen...

Entfernen veralteter Wörterbuchdateien:

Stoppen des PostgreSQL 10-Datenbankservers: main.

Stoppen des PostgreSQL 12-Datenbankservers: main.

Durchführen von Konsistenzprüfungen

-----------------------------

Prüfung der Cluster-Versionen ok

Der Quellcluster wurde nicht ordnungsgemäß heruntergefahren.

Fehler, Beenden

-------------------------------------------------------------------------------------

UPGRADE VON POSTGRES FEHLGESCHLAGEN

Bitte besuchen Sie https://meta.discourse.org/t/postgresql-12-update/151236 für Unterstützung

Sie können in der Zwischenzeit ./launcher start app ausführen, um Ihre App neu zu starten

FEHLGESCHLAGEN

--------------------

Pups::ExecError: /root/upgrade_postgres ist fehlgeschlagen mit Rückgabewert #

Ort des Fehlers: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec ist mit den Parametern "/root/upgrade_postgres" fehlgeschlagen

674042fc06e2af0c08a0a09c46406a0b18b1f08b9140e037fffe1053188bd1c0

** BOOTSTRAP FEHLGESCHLAGEN ** Bitte scrollen Sie nach oben und suchen Sie nach früheren Fehlermeldungen; es kann mehr als eine geben.

./discourse-doctor kann helfen, das Problem zu diagnostizieren.

root@community:/var/discourse#

Haben Sie eine Idee, warum?

Hast du diesen Beitrag gelesen?

Ja, das habe ich schon einmal gemacht. Wir konnten das Update nicht zum Laufen bringen.

Lesen Sie den gesamten FAQ-Abschnitt hier:

Ich habe den Workaround bereits ausprobiert, aber er hat nicht funktioniert.

Das Protokoll ist voll von:

2020-06-03 16:01:21.074 UTC [693] FATAL: Das Datenverzeichnis “/shared/postgres_data” hat die falschen Berechtigungen.
2020-06-03 16:01:21.074 UTC [693] HINT: Der Server muss vom Benutzer gestartet werden, dem das Datenverzeichnis gehört.

Nach dem Einloggen in den Container habe ich versucht, ihn selbst herunterzufahren:

root@community-app:/etc/postgresql/10/main# service postgresql stop

[FAIL] Herunterfahren des PostgreSQL 10-Datenbank-Servers: main[…] Fehler: Der Besitzer der Konfiguration (postgres:106) und der Besitzer der Daten (Debian-exim:105) stimmen nicht überein, und der Besitzer der Konfiguration ist nicht root … fehlgeschlagen!

fehlgeschlagen!

Das Ausführen von chown -R postgres postgres_data im Verzeichnis /shared nach dem Betreten des Docker-Containers hat das Problem behoben.