Aggiornamento “3.4.0.beta4” fallito

Ho ricevuto la solita email che mi diceva di accedere e fare clic sui pulsanti di aggiornamento della GUI. Di solito funzionano, ma questa volta l’intero sito è andato in crash senza spiegazioni.

Non potendo utilizzare la GUI del sito web, ho effettuato l’accesso tramite SSH al droplet, sono entrato in /var/discourse e ho provato a riavviare, ma si blocca.

Ho chiuso la connessione, ho effettuato nuovamente l’accesso tramite SSH, sono entrato nella directory e ho provato a ricostruire, ma anche questo si blocca.

Vedo alcuni altri post con lamentele simili, ma nessuna soluzione. Cosa dovrei fare, per favore?

Ecco l’output quando si blocca:

# ./launcher rebuild app
WARNING: Docker version 20.10.5 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-06T23:22:07.378632 #1]  INFO -- : Reading from stdin
I, [2025-02-06T23:22:07.397972 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown: 
I, [2025-02-06T23:22:07.403501 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown: 
I, [2025-02-06T23:22:07.409307 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown: 
I, [2025-02-06T23:22:07.415306 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown: 
I, [2025-02-06T23:22:07.420321 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown: 
I, [2025-02-06T23:22:07.421155 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/15/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.423599 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.428964 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.434970 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.435971 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.437209 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.438032 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.438766 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.439506 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T23:22:07.440192 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T23:22:07.440757 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T23:22:07.441342 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T23:22:07.442038 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi

failed to set locale!
[error] character map file `UTF-8' not found: No such file or directory
failed to set locale!
[error] default character map file `ANSI_X3.4-1968' not found: No such file or directory
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = "en_US.UTF-8",
	LC_ALL = "en_US.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
cat: /shared/postgres_data/PG_VERSION: No such file or directory
popen failure: Cannot allocate memory
initdb: error: program "postgres" is needed by initdb but was not found in the same directory as "/usr/lib/postgresql/15/bin/initdb"
I, [2025-02-06T23:22:09.511169 #1]  INFO -- : Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
Upgrading PostgreSQL from version to 15

I, [2025-02-06T23:22:09.511908 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
I, [2025-02-06T23:22:09.514561 #1]  INFO -- : Terminating async processes
2025-02-06 23:22:09.541 GMT [51] LOG:  skipping missing configuration file "/shared/postgres_data/postgresql.auto.conf"
2025-02-06 23:22:09.542 UTC [51] FATAL:  data directory "/shared/postgres_data" has invalid permissions
2025-02-06 23:22:09.542 UTC [51] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).


Vedi aggiornamento PostgreSQL 15

Penso che tu debba

Devi cambiare i permessi (ho sbagliato riguardo al proprietario)

Ho lo stesso problema

Devi risolvere questi problemi. Quali sono le specifiche del tuo server?

2 Mi Piace

OH! Non avevo notato il problema della versione di Docker.

@anon55243134, dovresti probabilmente fare un backup (se possibile) e spostarti su una nuova VM (usando Sposta un sito Discourse su un altro VPS con rsync se non hai un backup recente).

1 Mi Piace

Correlati:

La mia ipotesi è che sia fuori supporto.

Avviare una nuova VM e passare a quella richiede zero tempi di inattività e, se qualcosa va storto, rimani sul server esistente. È un po’ complicato, però.

Mi dispiace che tu non abbia avuto altra scelta che ricorrere a un vecchio backup. Passerei ai backup giornalieri e farei un backup prima dell’aggiornamento, così non dovrai perdere nulla.

Puoi passare ai branch beta o stable prima di aggiornare. Puoi leggere di Configurare un branch di tracciamento supportato per ricevere aggiornamenti del software Discourse

1 Mi Piace

Sto usando data.yml. Se stai usando app.yml, annota la configurazione di riferimento per postgres.template.yml all’interno di app.yml. Durante il processo di aggiornamento del database, devono essere utilizzati riferimenti gerarchici per effettuare l’upgrade dalla versione 13 alla 15.