Mise à niveau échouée

J’exécute Discourse sur Debian 11 avec Docker en tant que conteneur unique.

J’ai essayé de le mettre à jour en utilisant ./launcher rebuild app

Il échoue avec ce message :

I, [2023-01-04T20:53:09.920876 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!

Je ne trouve aucun moyen de le remettre en marche.

Des idées ?

Je vois que le propriétaire est incorrect

drwxr-xr-x 15 sshd             netdev          4096 Jan  4 21:43 .
drwxr-xr-x  3 root             root            4096 Jan  3  2018 ..
drwxr-xr-x  3             1000 www-data        4096 Jan  3  2018 backups
drwxr-xr-x  8 sshd             netdev          4096 Feb  2  2021 letsencrypt
drwxr-xr-x  4 sshd             netdev          4096 Jan  3  2018 log
drwxr-xr-x  2 systemd-timesync systemd-resolve 4096 Jan  3  2018 postgres_backup
drwx------ 19 systemd-timesync systemd-resolve 4096 Jan  4 21:53 postgres_data
drwx------ 19 sshd             netdev          4096 Jan  4 20:49 postgres_data_new
drwxrwsr-x  6 systemd-timesync systemd-resolve 4096 Jan  4 21:53 postgres_run
drwxr-xr-x  2 systemd-resolve  kvm             4096 Jan  4 21:53 redis_data
drwxr-xr-x  2 sshd             netdev          4096 Jan 22  2021 ssl
drwxr-xr-x  2 sshd             netdev          4096 Jan 21  2021 ssl_old
drwxr-xr-x  4 sshd             netdev          4096 Jan  3  2018 state
drwxr-xr-x  4             1000 www-data        4096 Jan  4 21:28 tmp
drwxr-xr-x  4             1000 www-data        4096 Jan  5  2018 uploads

Je démarre le conteneur en utilisant ./launcher start app. Ensuite, j’entre dans le conteneur : ./launcher enter app.

Je réinitialise la propriété chown -R postgres:postgres /shared/

Après cela, c’est corrigé. Mais lorsque je reconstruis l’application à nouveau, le propriétaire est à nouveau incorrect…

Ce n’est pas l’erreur, elle sera plus haut dans le journal, nous allons devoir en voir davantage.

2023-01-04 20:48:05.355 UTC [41] LOG:  démarrage de PostgreSQL 13.9 (Debian 13.9-1.pgdg110+1) sur x86_64-pc-linux-gnu, compilé par gcc (Debian 10.2.1-6) 10.2.1 20210110, 64 bits
2023-01-04 20:48:05.377 UTC [41] LOG:  écoute sur l'adresse IPv4 « 0.0.0.0 », port 5432
2023-01-04 20:48:05.377 UTC [41] LOG:  écoute sur l'adresse IPv6 « :: », port 5432
2023-01-04 20:48:05.566 UTC [41] LOG:  écoute sur le socket Unix « /var/run/postgresql/.s.PGSQL.5432 »
2023-01-04 20:48:05.734 UTC [44] LOG:  le système de base de données a été arrêté à 2023-01-04 20:46:17 UTC
2023-01-04 20:48:05.878 UTC [41] LOG:  le système de base de données est prêt à accepter les connexions
I, [2023-01-04T20:48:09.779985 #1]  INFO -- :
I, [2023-01-04T20:48:09.780390 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2023-01-04 20:48:10.014 UTC [54] postgres@postgres ERROR:  la base de données « discourse » existe déjà
2023-01-04 20:48:10.014 UTC [54] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: error: la création de la base de données a échoué : ERROR:  la base de données « discourse » existe déjà
I, [2023-01-04T20:48:10.017003 #1]  INFO -- :
I, [2023-01-04T20:48:10.017425 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2023-01-04 20:48:10.188 UTC [58] postgres@discourse ERROR:  le rôle « discourse » existe déjà
2023-01-04 20:48:10.188 UTC [58] postgres@discourse STATEMENT:  create user discourse;
ERROR:  le rôle « discourse » existe déjà
129:M 04 Jan 2023 20:48:21.224 # Échec de l'écoute sur le port 6379 (TCP), abandon.

Je ne vois pas d’autres erreurs.

:man_shrugging:

À l’intérieur du conteneur, j’essaie de démarrer le service postgresql et j’obtiens une erreur.

root@server /var/discourse # ./launcher enter app
x86_64 arch detected.
root@discourse:/var/www/discourse# service postgresql start
[FAIL] Starting PostgreSQL 13 database server: main[....] Error: Config owner (postgres:105) and data owner (systemd-timesync:101) do not match, and config owner is not root ... failed!
 failed!
root@discourse:/var/www/discourse#

Si vous avez changé les propriétaires des fichiers dans le dossier partagé, vous allez casser l’installation. Une option est de réinstaller et de restaurer une sauvegarde, tandis que l’autre est de corriger manuellement ces propriétaires.

1 « J'aime »

@Falco : merci !

J’ai changé les propriétaires après l’échec de la mise à niveau. J’ai trouvé l’indice chown quelque part dans un post.

Comment puis-je créer une sauvegarde dans l’état actuel ?

Comment puis-je corriger les propriétaires manuellement ?

Merci encore !

À l’intérieur du conteneur, j’ai essayé discourse backup. Il signale que Redis ne fonctionne pas. Dans le journal Redis « current », j’ai trouvé les lignes suivantes à la fin…

10316:M 05 Jan 2023 08:05:27.314 # Server initialized
10316:M 05 Jan 2023 08:05:27.314 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
10316:M 05 Jan 2023 08:05:27.314 # Can't handle RDB format version 10
10316:M 05 Jan 2023 08:05:27.314 # Fatal error loading the DB: Invalid argument. Exiting.
10321:C 05 Jan 2023 08:05:28.345 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
10321:C 05 Jan 2023 08:05:28.345 # Redis version=6.2.3, bits=64, commit=00000000, modified=0, pid=10321, just started
10321:C 05 Jan 2023 08:05:28.345 # Configuration loaded
10321:M 05 Jan 2023 08:05:28.346 * monotonic clock: POSIX clock_gettime
10321:M 05 Jan 2023 08:05:28.347 * Running mode=standalone, port=6379.
10321:M 05 Jan 2023 08:05:28.347 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
10321:M 05 Jan 2023 08:05:28.347 # Server initialized
10321:M 05 Jan 2023 08:05:28.347 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
10321:M 05 Jan 2023 08:05:28.348 # Can't handle RDB format version 10
10321:M 05 Jan 2023 08:05:28.348 # Fatal error loading the DB: Invalid argument. Exiting.

J’ai corrigé les autorisations comme ceci (à l’intérieur du conteneur) :

Ensuite, j’ai redémarré le conteneur avec ./launcher restart app. Maintenant, je peux accéder à Discourse. Mais c’est l’ancienne version 2.8.3 que j’ai essayé de mettre à niveau vers la 3.0.0.beta16 hier.

Je ne suis pas sûr de la marche à suivre pour mettre à niveau Discourse.

Je pense que mon problème est lié à ce fil de discussion : Problem upgrading multi-site/multi-containers Discourse instance - #5 by jtraulle

Je me souviens avoir eu des problèmes de mise à niveau auparavant, mais je ne les ai jamais examinés.

./launcher rebuild app

J’ai pu définir la version sur 2.9.0.beta2 (id de commit : 88a8584348ed93a28286839bfc1c32b06bd50b3f) en définissant l’id de commit comme « version » dans app.yml. Cette fois, la mise à niveau a fonctionné. Après cela, j’ai pu passer à la version 3.0.0.beta16.

Merci à tous.

5 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.