La mise à niveau de 3.1.x vers 3.2.0 bloque/échoue sur une instance de 1 Go

J’apprécierais toute aide. J’essaie de mettre à jour de la version 3.1.5 à la 3.2.0 depuis 8 heures.

Il semble simplement bloquer à cette étape :

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 600 app
app
2.0.20231218-0429: Tirage depuis discourse/base
Digest : sha256:468f70b9bb4c6d0c6c2bbb3efc1a5e12d145eae57bdb6946b7fe5558beb52dc1
Statut : L'image est à jour pour discourse/base:2.0.20231218-0429
docker.io/discourse/base:2.0.20231218-0429
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-02-01T05:20:13.663978 #1]  INFO -- : Lecture depuis l'entrée standard
I, [2024-02-01T05:20:13.670645 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2024-02-01T05:20:13.712975 #1]  INFO -- : Génération des locales (cela peut prendre un moment)...
Génération terminée.

I, [2024-02-01T05:20:13.713587 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2024-02-01T05:20:13.717850 #1]  INFO -- :
I, [2024-02-01T05:20:13.718463 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2024-02-01T05:20:13.722273 #1]  INFO -- :
I, [2024-02-01T05:20:13.722901 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2024-02-01T05:20:13.726117 #1]  INFO -- :
I, [2024-02-01T05:20:13.726724 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2024-02-01T05:20:13.730093 #1]  INFO -- :
I, [2024-02-01T05:20:13.730719 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2024-02-01T05:20:13.734550 #1]  INFO -- :
I, [2024-02-01T05:20:13.735116 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2024/02/01 05:20:13 socat[18] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Aucun fichier ou dossier de ce type
I, [2024-02-01T05:20:13.757786 #1]  INFO -- :
I, [2024-02-01T05:20:13.758259 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2024-02-01T05:20:13.761231 #1]  INFO -- :
I, [2024-02-01T05:20:13.761705 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2024-02-01T05:20:13.764603 #1]  INFO -- :
I, [2024-02-01T05:20:13.765030 #1]  INFO -- : > mkdir -p /shared/postgres_run/13-main.pg_stat_tmp
I, [2024-02-01T05:20:13.767619 #1]  INFO -- :
I, [2024-02-01T05:20:13.768243 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/13-main.pg_stat_tmp
I, [2024-02-01T05:20:13.770687 #1]  INFO -- :
I, [2024-02-01T05:20:13.775750 #1]  INFO -- : Fichier > /etc/service/postgres/run  chmod: +x  chown:
I, [2024-02-01T05:20:13.780586 #1]  INFO -- : Fichier > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2024-02-01T05:20:13.785496 #1]  INFO -- : Fichier > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2024-02-01T05:20:13.790412 #1]  INFO -- : Fichier > /root/upgrade_postgres  chmod: +x  chown:
I, [2024-02-01T05:20:13.791046 #1]  INFO -- : > chown -R root /var/lib/postgresql/13/main
I, [2024-02-01T05:20:16.705999 #1]  INFO -- :
I, [2024-02-01T05:20:16.706819 #1]  INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/13/bin/initdb -D /shared/postgres_data || exit 0
I, [2024-02-01T05:20:16.709471 #1]  INFO -- :
I, [2024-02-01T05:20:16.709873 #1]  INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2024-02-01T05:20:16.748408 #1]  INFO -- :
I, [2024-02-01T05:20:16.749205 #1]  INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2024-02-01T05:20:16.752138 #1]  INFO -- :
I, [2024-02-01T05:20:16.752728 #1]  INFO -- : > /root/upgrade_postgres
I, [2024-02-01T05:20:16.759412 #1]  INFO -- :
I, [2024-02-01T05:20:16.759890 #1]  INFO -- : > rm /root/upgrade_postgres
I, [2024-02-01T05:20:16.762107 #1]  INFO -- :
I, [2024-02-01T05:20:16.764889 #1]  INFO -- : Remplacement de data_directory = '/var/lib/postgresql/13/main' par data_directory = '/shared/postgres_data' dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.765803 #1]  INFO -- : Remplacement de (?-mix:#?listen_addresses *=.*) par listen_addresses = '*' dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.766486 #1]  INFO -- : Remplacement de (?-mix:#?synchronous_commit *=.*) par synchronous_commit = $db_synchronous_commit dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.767571 #1]  INFO -- : Remplacement de (?-mix:#?shared_buffers *=.*) par shared_buffers = $db_shared_buffers dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.768666 #1]  INFO -- : Remplacement de (?-mix:#?work_mem *=.*) par work_mem = $db_work_mem dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.769702 #1]  INFO -- : Remplacement de (?-mix:#?default_text_search_config *=.*) par default_text_search_config = '$db_default_text_search_config' dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.770784 #1]  INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2024-02-01T05:20:16.777960 #1]  INFO -- :
I, [2024-02-01T05:20:16.778711 #1]  INFO -- : Remplacement de (?-mix:#?checkpoint_segments *=.*) par checkpoint_segments = $db_checkpoint_segments dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.779400 #1]  INFO -- : Remplacement de (?-mix:#?logging_collector *=.*) par logging_collector = $db_logging_collector dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.780719 #1]  INFO -- : Remplacement de (?-mix:#?log_min_duration_statement *=.*) par log_min_duration_statement = $db_log_min_duration_statement dans /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.782507 #1]  INFO -- : Remplacement de (?-mix:^#local +replication +postgres +peer$) par local replication postgres  peer dans /etc/postgresql/13/main/pg_hba.conf
I, [2024-02-01T05:20:16.783245 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*127.*$) par host all all 0.0.0.0/0 md5 dans /etc/postgresql/13/main/pg_hba.conf
I, [2024-02-01T05:20:16.783845 #1]  INFO -- : Remplacement de (?-mix:^host.*all.*all.*::1\/128.*$) par host all all ::/0 md5 dans /etc/postgresql/13/main/pg_hba.conf
I, [2024-02-01T05:20:16.784749 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main
I, [2024-02-01T05:20:16.786361 #1]  INFO -- : > sleep 5
2024-02-01 05:20:16.885 UTC [41] LOG:  démarrage de PostgreSQL 13.13 (Debian 13.13-1.pgdg110+1) sur x86_64-pc-linux-gnu, compilé par gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-02-01 05:20:16.887 UTC [41] LOG:  écoute sur l'adresse IPv4 "0.0.0.0", port 5432
2024-02-01 05:20:16.887 UTC [41] LOG:  écoute sur l'adresse IPv6 "::", port 5432
2024-02-01 05:20:16.893 UTC [41] LOG:  écoute sur le socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2024-02-01 05:20:16.902 UTC [44] LOG:  le système de bases de données a été arrêté le 2024-02-01 05:20:02 UTC
2024-02-01 05:20:16.911 UTC [41] LOG:  le système de bases de données est prêt à accepter les connexions
I, [2024-02-01T05:20:21.790669 #1]  INFO -- :
I, [2024-02-01T05:20:21.790891 #1]  INFO -- : > su postgres -c 'createdb discourse' || true
2024-02-01 05:20:21.897 UTC [54] postgres@postgres ERROR:  la base de données « discourse » existe déjà
2024-02-01 05:20:21.897 UTC [54] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: erreur: la création de la base de données a échoué : ERROR:  la base de données « discourse » existe déjà
I, [2024-02-01T05:20:21.900341 #1]  INFO -- :
I, [2024-02-01T05:20:21.900879 #1]  INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2024-02-01 05:20:21.987 UTC [58] postgres@discourse ERROR:  le rôle « discourse » existe déjà
2024-02-01 05:20:21.987 UTC [58] postgres@discourse STATEMENT:  create user discourse;
ERROR:  le rôle « discourse » existe déjà
I, [2024-02-01T05:20:21.990907 #1]  INFO -- :
I, [2024-02-01T05:20:21.991456 #1]  INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
I, [2024-02-01T05:20:22.048297 #1]  INFO -- : GRANT

I, [2024-02-01T05:20:22.048988 #1]  INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
I, [2024-02-01T05:20:22.106460 #1]  INFO -- : ALTER SCHEMA

I, [2024-02-01T05:20:22.107187 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists hstore;"'
NOTICE:  l'extension « hstore » existe déjà, ignorée
I, [2024-02-01T05:20:22.183367 #1]  INFO -- : CREATE EXTENSION

I, [2024-02-01T05:20:22.183889 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists pg_trgm;"'
NOTICE:  l'extension « pg_trgm » existe déjà, ignorée
I, [2024-02-01T05:20:22.240624 #1]  INFO -- : CREATE EXTENSION

I, [2024-02-01T05:20:22.241181 #1]  INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists vector;"'
NOTICE:  l'extension « vector » existe déjà, ignorée
I, [2024-02-01T05:20:22.297658 #1]  INFO -- : CREATE EXTENSION

I, [2024-02-01T05:20:22.298255 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists hstore;"'
NOTICE:  l'extension « hstore » existe déjà, ignorée
I, [2024-02-01T05:20:22.356472 #1]  INFO -- : CREATE EXTENSION

I, [2024-02-01T05:20:22.356991 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists pg_trgm;"'
NOTICE:  l'extension « pg_trgm » existe déjà, ignorée
I, [2024-02-01T05:20:22.414056 #1]  INFO -- : CREATE EXTENSION

I, [2024-02-01T05:20:22.414618 #1]  INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists vector;"'
NOTICE:  l'extension « vector » existe déjà, ignorée
I, [2024-02-01T05:20:22.470035 #1]  INFO -- : CREATE EXTENSION

I, [2024-02-01T05:20:22.470658 #1]  INFO -- : > sudo -u postgres psql discourse
I, [2024-02-01T05:20:22.475733 #1]  INFO -- : update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse' AND encoding = pg_char_to_encoding('SQL_ASCII');

I, [2024-02-01T05:20:22.567511 #1]  INFO -- : Fichier > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2024-02-01T05:20:22.572125 #1]  INFO -- : Fichier > /var/spool/cron/crontabs/postgres  chmod:   chown:
I, [2024-02-01T05:20:22.572526 #1]  INFO -- : > echo postgres installed!
I, [2024-02-01T05:20:22.575793 #1]  INFO -- : postgres installed!

I, [2024-02-01T05:20:22.580912 #1]  INFO -- : Fichier > /etc/service/redis/run  chmod: +x  chown:
I, [2024-02-01T05:20:22.585785 #1]  INFO -- : Fichier > /etc/service/redis/log/run  chmod: +x  chown:
I, [2024-02-01T05:20:22.590830 #1]  INFO -- : Fichier > /etc/runit/3.d/10-redis  chmod: +x  chown:
I, [2024-02-01T05:20:22.593112 #1]  INFO -- : Remplacement de daemonize yes par  dans /etc/redis/redis.conf
I, [2024-02-01T05:20:22.594012 #1]  INFO -- : Remplacement de (?-mix:^pidfile.*$) par  dans /etc/redis/redis.conf
I, [2024-02-01T05:20:22.594826 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2024-02-01T05:20:22.597926 #1]  INFO -- :
I, [2024-02-01T05:20:22.598727 #1]  INFO -- : Remplacement de (?-mix:^logfile.*$) par logfile "" dans /etc/redis/redis.conf
I, [2024-02-01T05:20:22.599588 #1]  INFO -- : Remplacement de (?-mix:^bind .*$) par  dans /etc/redis/redis.conf
I, [2024-02-01T05:20:22.601300 #1]  INFO -- : Remplacement de (?-mix:^dir .*$) par dir /shared/redis_data dans /etc/redis/redis.conf
I, [2024-02-01T05:20:22.603062 #1]  INFO -- : Remplacement de (?-mix:^protected-mode yes) par protected-mode no dans /etc/redis/redis.conf
I, [2024-02-01T05:20:22.604759 #1]  INFO -- : Remplacement de # io-threads 4 par io-threads $redis_io_threads dans /etc/redis/redis.conf
I, [2024-02-01T05:20:22.606503 #1]  INFO -- : > echo redis installed
I, [2024-02-01T05:20:22.609035 #1]  INFO -- : redis installed

I, [2024-02-01T05:20:22.609661 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2024-02-01T05:20:22.614668 #1]  INFO -- : logfile ""

I, [2024-02-01T05:20:22.615160 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-02-01T05:20:22.616826 #1]  INFO -- : > sleep 10
110:C 01 Fév 2024 05:20:22.631 # oO0OoO0OoO0Oo Redis est en cours de démarrage oO0OoO0OoO0Oo
110:C 01 Fév 2024 05:20:22.631 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=110, just started
110:C 01 Fév 2024 05:20:22.631 # Configuration chargée
110:M 01 Fév 2024 05:20:22.632 * horloge monotone : POSIX clock_gettime
110:M 01 Fév 2024 05:20:22.633 * Mode d'exécution=standalone, port=6379.
110:M 01 Fév 2024 05:20:22.633 # Serveur initialisé
110:M 01 Fév 2024 05:20:22.634 # ATTENTION L'overcommit de mémoire doit être activé ! Sans cela, une sauvegarde en arrière-plan ou une réplication peut échouer en cas de mémoire insuffisante. Désactivé, cela peut également provoquer des échecs sans condition de mémoire insuffisante, voir https://github.com/jemalloc/jemalloc/issues/1328. Pour corriger ce problème, ajoutez 'vm.overcommit_memory = 1' à /etc/sysctl.conf puis redémarrez ou exécutez la commande 'sysctl vm.overcommit_memory=1' pour que cela prenne effet.
110:M 01 Fév 2024 05:20:22.634 # ATTENTION Votre système est configuré pour utiliser la source d'horloge 'xen' ce qui pourrait entraîner des performances dégradées. Vérifiez le résultat de la vérification système [slow-clocksource] : exécutez 'redis-server --check-system' pour vérifier si la source d'horloge du système ne dégrade pas les performances.
110:M 01 Fév 2024 05:20:22.635 * Chargement du RDB produit par la version 7.0.7
110:M 01 Fév 2024 05:20:22.635 * Âge du RDB 28 secondes
110:M 01 Fév 2024 05:20:22.635 * Utilisation mémoire du RDB lors de sa création 12.85 Mo
110:M 01 Fév 2024 05:20:22.670 * Chargement du RDB terminé, clés chargées : 11479, clés expirées : 6.
110:M 01 Fév 2024 05:20:22.670 * DB chargée depuis le disque : 0.035 secondes
110:M 01 Fév 2024 05:20:22.670 * Prêt à accepter les connexions
I, [2024-02-01T05:20:32.621081 #1]  INFO -- :
I, [2024-02-01T05:20:32.621808 #1]  INFO -- : > thpoff echo "thpoff is installed!"
I, [2024-02-01T05:20:32.626389 #1]  INFO -- : thpoff is installed!

I, [2024-02-01T05:20:32.626901 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Aborting! Mail is not configured!"; exit 1; end'
I, [2024-02-01T05:20:32.707287 #1]  INFO -- :
I, [2024-02-01T05:20:32.707923 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "Aborting! Domain is not configured!"; exit 1; end'
I, [2024-02-01T05:20:32.788125 #1]  INFO -- :
I, [2024-02-01T05:20:32.788819 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "Aborting! CDN must have a protocol specified. Once fixed you should rebake your posts now to correct all posts."; exit 1; end'
I, [2024-02-01T05:20:32.868839 #1]  INFO -- :
I, [2024-02-01T05:20:32.869502 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2024-02-01T05:20:32.872477 #1]  INFO -- :
I, [2024-02-01T05:20:32.875792 #1]  INFO -- : Fichier > /etc/cron.d/anacron  chmod:   chown:
I, [2024-02-01T05:20:32.882091 #1]  INFO -- : Fichier > /etc/runit/1.d/copy-env  chmod: +x  chown:
I, [2024-02-01T05:20:32.887278 #1]  INFO -- : Fichier > /etc/service/unicorn/run  chmod: +x  chown:
I, [2024-02-01T05:20:32.892443 #1]  INFO -- : Fichier > /etc/service/nginx/run  chmod: +x  chown:
I, [2024-02-01T05:20:32.897678 #1]  INFO -- : Fichier > /etc/runit/3.d/01-nginx  chmod: +x  chown:
I, [2024-02-01T05:20:32.902952 #1]  INFO -- : Fichier > /etc/runit/3.d/02-unicorn  chmod: +x  chown:
I, [2024-02-01T05:20:32.903394 #1]  INFO -- : Remplacement de # postgres par sv start postgres || exit 1 dans /etc/service/unicorn/run
I, [2024-02-01T05:20:32.903939 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2024-02-01T05:20:32.906369 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git reset --hard
137:C 01 Fév 2024 05:20:32.915 # oO0OoO0OoO0Oo Redis est en cours de démarrage oO0OoO0OoO0Oo
137:C 01 Fév 2024 05:20:32.918 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=137, just started
137:C 01 Fév 2024 05:20:32.918 # Configuration chargée
137:M 01 Fév 2024 05:20:32.919 * horloge monotone : POSIX clock_gettime
137:M 01 Fév 2024 05:20:32.920 # Avertissement : Impossible de créer le socket d'écoute TCP du serveur *:6379 : bind : Adresse déjà utilisée
137:M 01 Fév 2024 05:20:32.920 # Échec de l'écoute sur le port 6379 (TCP), abandon.
Mise à jour des fichiers : 100% (33715/33715), terminé.
I, [2024-02-01T05:20:39.803997 #1]  INFO -- : HEAD est maintenant à 6ab1a19e9 DEV: Convert min_trust_level_to_allow_invite to groups (#24893)

I, [2024-02-01T05:20:39.804645 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2024-02-01T05:20:40.031462 #1]  INFO -- :
I, [2024-02-01T05:20:40.032125 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
      git remote set-branches --add origin main
      git remote set-branches origin stable
      git fetch --depth 1 origin stable
  else
      git fetch --tags --prune-tags --prune --force origin
  fi
'
From https://github.com/discourse/discourse
 - [deleted]             (none)     -> origin/0-drop-code
 - [deleted]             (none)     -> origin/bulk-button-class
 - [deleted]             (none)     -> origin/dependabot/bundler/excon-0.108.0
 - [deleted]             (none)     -> origin/dependabot/bundler/hashdiff-1.1.0
 - [deleted]             (none)     -> origin/dependabot/bundler/parallel-1.24.0
 - [deleted]             (none)     -> origin/dependabot/bundler/rubocop-discourse-3.6.0
 - [deleted]             (none)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/drop-target-2.0.2
 - [deleted]             (none)     -> origin/dev/add-new-chat-metrics
 - [deleted]             (none)     -> origin/dev/allow-chat-mentions-to-have-several-notifications
 - [deleted]             (none)     -> origin/dev/convert-min-trust-level-to-create-tag-to-group
 - [deleted]             (none)     -> origin/dev/convert-min-trust-level-to-ignore-to-groups
 - [deleted]             (none)     -> origin/dev/rethink-mass-mentions-polymorphic
 - [deleted]             (none)     -> origin/feature/migrations-schema-generator
 - [deleted]             (none)     -> origin/fix-join-filter-upload
 - [deleted]             (none)     -> origin/fix-modal-flash-minor
 - [deleted]             (none)     -> origin/global-notice-reactive
 - [deleted]             (none)     -> origin/labeler
 - [deleted]             (none)     -> origin/low-ram-help
 - [deleted]             (none)     -> origin/multi-invite
 - [deleted]             (none)     -> origin/table-builder-modal-modifier
 - [deleted]             (none)     -> origin/wip_categories
 - [deleted]             (none)     -> origin/wizard-split
   6ab1a19e9..969ab0fd6  main                    -> origin/main
 * [new branch]          0-category-reorder      -> origin/0-category-reorder
 * [new branch]          0-ember-bump            -> origin/0-ember-bump
 * [new branch]          0-event-helper          -> origin/0-event-helper
 * [new branch]          0-extend-native         -> origin/0-extend-native
 * [new branch]          0-rev                   -> origin/0-rev
 * [new branch]          add-api-for-forced-auth -> origin/add-api-for-forced-auth
 * [new branch]          amend-visit-copy        -> origin/amend-visit-copy
 * [new branch]          asciinema-iframe        -> origin/asciinema-iframe
 * [new branch]          chat/original-message-link -> origin/chat/original-message-link
 * [new branch]          convert-header-to-glimmer -> origin/convert-header-to-glimmer
 * [new branch]          decorator-transforms    -> origin/decorator-transforms
 * [new branch]          dependabot/bundler/omniauth-2.0.0 -> origin/dependabot/bundler/omniauth-2.0.0
 * [new branch]          dependabot/bundler/parallel_tests-4.4.0 -> origin/dependabot/bundler/parallel_tests-4.4.0
 * [new branch]          dev-convert-topic-map-expanded-widget-to-component -> origin/dev-convert-topic-map-expanded-widget-to-component
 * [new branch]          dev/check-whether-online-user-ids-may-be-memoized-between-job-runs -> origin/dev/check-whether-online-user-ids-may-be-memoized-between-job-runs
 * [new branch]          dev/drop-the-user-id-column-from-chat-mentions -> origin/dev/drop-the-user-id-column-from-chat-mentions
 + e0c0191bb...feb00e04c dev/dry-up-user-status-serializers -> origin/dev/dry-up-user-status-serializers  (forced update)
 * [new branch]          dev/experiment-theme-settings-free-ui -> origin/dev/experiment-theme-settings-free-ui
 * [new branch]          dev/make-admins-tl4-in-tests -> origin/dev/make-admins-tl4-in-tests
 * [new branch]          dev/promote-plugin-post-deploy-migrations -> origin/dev/promote-plugin-post-deploy-migrations
 * [new branch]          dev/proof-of-concept-rewriting-mentions-notification-logic -> origin/dev/proof-of-concept-rewriting-mentions-notification-logic
 * [new branch]          dev_category_order_database -> origin/dev_category_order_database
 * [new branch]          dev_update_category_position -> origin/dev_update_category_position
 * [new branch]          ellaestigoy-patch-2     -> origin/ellaestigoy-patch-2
 * [new branch]          fast-edit-expand-regex  -> origin/fast-edit-expand-regex
 * [new branch]          feature/add-new-illegal-flag-reason -> origin/feature/add-new-illegal-flag-reason
 * [new branch]          feature/custom-date-range -> origin/feature/custom-date-range
 * [new branch]          feature/paste-upload-on-first-upload-input-templates -> origin/feature/paste-upload-on-first-upload-input-templates
 * [new branch]          feature_async_load_colors -> origin/feature_async_load_colors
 * [new branch]          fix-email-category-badge -> origin/fix-email-category-badge
 * [new branch]          fix_category_chooser    -> origin/fix_category_chooser
 * [new branch]          fix_in_any_groups       -> origin/fix_in_any_groups
 * [new branch]          fix_preload_sidebar_categories -> origin/fix_preload_sidebar_categories
 * [new branch]          fix_reviewable_translation -> origin/fix_reviewable_translation
   7f2bdca65..b851b879c  generic-import-latest   -> origin/generic-import-latest
 * [new branch]          hijacks                 -> origin/hijacks
 * [new branch]          issue/avatar-upload-permission-serialize -> origin/issue/avatar-upload-permission-serialize
 * [new branch]          issue/run-admin-sidebar-init-after-logs-notice -> origin/issue/run-admin-sidebar-init-after-logs-notice
 + 90a3535b7...e6e64cfd5 migrations-convert      -> origin/migrations-convert  (forced update)
 + 0fa691496...b0f74a188 plugin-extra-js         -> origin/plugin-extra-js  (forced update)
 * [new branch]          promote-migration-tweak -> origin/promote-migration-tweak
 * [new branch]          revert-25009-dev/convert-min-trust-to-allow-self-wiki-to-groups -> origin/revert-25009-dev/convert-min-trust-to-allow-self-wiki-to-groups
 * [new branch]          revert-bulk-topic-actions -> origin/revert-bulk-topic-actions
 * [new branch]          sidebar-above-outlet    -> origin/sidebar-above-outlet
 * [new branch]          site-logo-height        -> origin/site-logo-height
 * [new branch]          soft-load-topic-results -> origin/soft-load-topic-results
   d7f7f79b6..968b1a57e  stable                  -> origin/stable
 * [new branch]          support-reset-bump-date-post-id -> origin/support-reset-bump-date-post-id
   6ab1a19e9..969ab0fd6  tests-passed            -> origin/tests-passed
 * [new branch]          unhide_lazy_load_categories -> origin/unhide_lazy_load_categories
 * [new branch]          universal-nonce         -> origin/universal-nonce
 * [new branch]          unread-mobile-indicator -> origin/unread-mobile-indicator
 * [new branch]          virtual-scroll-list     -> origin/virtual-scroll-list
 t [tag update]          beta                    -> beta
 t [tag update]          latest-release          -> latest-release
 * [new tag]             v3.1.4                  -> v3.1.4
 * [new tag]             v3.1.5                  -> v3.1.5
 * [new tag]             v3.2.0                  -> v3.2.0
 * [new tag]             v3.2.0.beta4            -> v3.2.0.beta4
 * [new tag]             v3.2.0.beta5            -> v3.2.0.beta5
I, [2024-02-01T05:20:40.935200 #1]  INFO -- :
I, [2024-02-01T05:20:40.935686 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  if [[ $(git symbolic-ref --short HEAD) == stable ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout stable
  fi
'
Basculé vers une nouvelle branche 'stable'
I, [2024-02-01T05:20:44.064865 #1]  INFO -- : La branche 'stable' est configurée pour suivre la branche distante 'stable' de 'origin'.

I, [2024-02-01T05:20:44.065354 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version stable
I, [2024-02-01T05:20:44.077044 #1]  INFO -- :
I, [2024-02-01T05:20:44.077436 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2024-02-01T05:20:44.085161 #1]  INFO -- :
I, [2024-02-01T05:20:44.085555 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2024-02-01T05:20:44.090473 #1]  INFO -- :
I, [2024-02-01T05:20:44.090945 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2024-02-01T05:20:44.094272 #1]  INFO -- :
I, [2024-02-01T05:20:44.094646 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2024-02-01T05:20:44.097962 #1]  INFO -- :
I, [2024-02-01T05:20:44.098333 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2024-02-01T05:20:44.102920 #1]  INFO -- :
I, [2024-02-01T05:20:44.103294 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2024-02-01T05:20:44.106489 #1]  INFO -- :
I, [2024-02-01T05:20:44.106964 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2024-02-01T05:20:44.112554 #1]  INFO -- :
I, [2024-02-01T05:20:44.112953 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2024-02-01T05:20:44.119868 #1]  INFO -- :
I, [2024-02-01T05:20:44.120247 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2024-02-01T05:20:44.125723 #1]  INFO -- :
I, [2024-02-01T05:20:44.126103 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2024-02-01T05:20:44.130710 #1]  INFO -- :
I, [2024-02-01T05:20:44.131085 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2024-02-01T05:20:44.136397 #1]  INFO -- :
I, [2024-02-01T05:20:44.136900 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2024-02-01T05:20:44.141456 #1]  INFO -- :
I, [2024-02-01T05:20:44.141832 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2024-02-01T05:20:44.267143 #1]  INFO -- :
I, [2024-02-01T05:20:44.267732 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2024-02-01T05:20:44.270260 #1]  INFO -- :
I, [2024-02-01T05:20:44.271569 #1]  INFO -- : Remplacement de # redis par sv start redis || exit 1 dans /etc/service/unicorn/run
I, [2024-02-01T05:20:44.273289 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Clonage dans 'docker_manager'...
I, [2024-02-01T05:20:45.047892 #1]  INFO -- :
I, [2024-02-01T05:20:45.048485 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-voting.git
Clonage dans 'discourse-voting'...
I, [2024-02-01T05:20:45.349517 #1]  INFO -- :
I, [2024-02-01T05:20:45.350128 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-solved.git
Clonage dans 'discourse-solved'...
I, [2024-02-01T05:20:45.696361 #1]  INFO -- :
I, [2024-02-01T05:20:45.696958 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-policy.git
Clonage dans 'discourse-policy'...
I, [2024-02-01T05:20:45.985549 #1]  INFO -- :
I, [2024-02-01T05:20:45.986116 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-adplugin.git
Clonage dans 'discourse-adplugin'...
I, [2024-02-01T05:20:46.333531 #1]  INFO -- :
I, [2024-02-01T05:20:46.334121 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-data-explorer.git
Clonage dans 'discourse-data-explorer'...
I, [2024-02-01T05:20:46.684891 #1]  INFO -- :
I, [2024-02-01T05:20:46.685512 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/communiteq/discourse-suppress-category-from-latest.git
Clonage dans 'discourse-suppress-category-from-latest'...
I, [2024-02-01T05:20:46.860067 #1]  INFO -- :
I, [2024-02-01T05:20:46.860646 #1]  INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/discourse-bbcode-color
Clonage dans 'discourse-bbcode-color'...
I, [2024-02-01T05:20:47.089640 #1]  INFO -- :
I, [2024-02-01T05:20:47.090378 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2024-02-01T05:20:47.099746 #1]  INFO -- :
I, [2024-02-01T05:20:47.100326 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2024-02-01T05:20:47.103575 #1]  INFO -- :
I, [2024-02-01T05:20:47.104073 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2024-02-01T05:20:47.107202 #1]  INFO -- :
I, [2024-02-01T05:20:47.108186 #1]  INFO -- : Remplacement de pid /run/nginx.pid; par daemon off; dans /etc/nginx/nginx.conf
I, [2024-02-01T05:20:47.109528 #1]  INFO -- : Remplacement de (?m-ix:upstream[^\}]+\}) par upstream discourse { server 127.0.0.1:3000; } dans /etc/nginx/conf.d/discourse.conf
I, [2024-02-01T05:20:47.110130 #1]  INFO -- : Remplacement de (?-mix:server_name.+$) par server_name _ ; dans /etc/nginx/conf.d/discourse.conf
I, [2024-02-01T05:20:47.110992 #1]  INFO -- : Remplacement de (?-mix:client_max_body_size.+$) par client_max_body_size $upload_size ; dans /etc/nginx/conf.d/discourse.conf
I, [2024-02-01T05:20:47.111810 #1]  INFO -- : Remplacement de (?-mix:worker_connections.+$) par worker_connections $nginx_worker_connections ; dans /etc/nginx/nginx.conf
I, [2024-02-01T05:20:47.112296 #1]  INFO -- : > echo "done configuring web"
I, [2024-02-01T05:20:47.114305 #1]  INFO -- : done configuring web

I, [2024-02-01T05:20:47.114863 #1]  INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
I, [2024-02-01T05:20:48.019548 #1]  INFO -- : Successfully installed bundler-2.5.3
1 gem installed

Une erreur s'est produite lors de ma mise à jour

```ruby
api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

Merci de m’aider à le corriger.

Il est possible que vous n’ayez pas assez de RAM, ce qui entraîne beaucoup d’échange (swapping), signifiant que le processeur ne sera pas sollicité à son maximum car la machine échange constamment des données.

Vous pouvez mesurer les choses depuis la ligne de commande :

cat /etc/lsb-release
df -h /
free
vmstat 5 5

soit avec la machine dans un état calme, soit au moment où elle est bloquée. (Connectez-vous depuis une deuxième fenêtre pour obtenir une deuxième ligne de commande. Ou similaire.)

Merci, sur cette reconstruction, cela avance très, très lentement avec yarn, le CPU est à peine utilisé et il ne semble pas y avoir beaucoup d’E/S non plus. Je suis un peu perdu quant à la raison pour laquelle cela rampe.

ubuntu@ip-172-26-6-122:~$ cat /etc/lsb-release
df -h /
free
vmstat 5 5
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        39G   19G   21G  47% /
              total        used        free      shared  buff/cache   available
Mem:          972524      399360       75956       14532      497208      365668
Swap:        2097148       51296     2045852
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st\n 0  4  51296  75956  56504 440780  951  936  7442  1197  620 1597  2  4  2 91  0\n 0  5  51296  69668  56632 444976    0    0   418   585  389  893  2  2  0 96  0\n 0  4  51296  65384  57280 448368    0    0   422   599  382  906  1  1  0 97  0\n 0  4  51296  74460  57564 439444    0    0   506   546  399  946  1  3  0 96  0\n 0  4  51296  64588  57828 444900    0    0   545   614  407  983  2  2  0 96  0\n```

![image|690x401](upload://642KzuHZTAZdGgGlyec7wHRZkDV.png)

Avant la version 3.2.0, les reconstructions se déroulaient généralement très rapidement et étaient terminées en 10 à 20 minutes.

Merci. Donc, pas d’échange, pas de problème de RAM. Vous avez des E/S de bloc constantes. Cela pourrait-il être du stockage distant ? Tout est-il local ou y a-t-il du stockage cloud impliqué ?

Je remarque que snapd et amazon-ssm-agent ont accumulé pas mal de temps CPU, même si leur pourcentage est de zéro. Je ne sais pas ce qui se passe là-bas - je n’ai aucun des deux.

Si les E/S sont vraiment lentes, il se peut que vous partagiez une machine (et un disque) avec un voisin très gourmand. Peut-être pouvez-vous demander à votre fournisseur d’hébergement de vous déplacer, ou vérifier ?

Désolé, pas de bonnes réponses pour le moment.

Exécution sur EC2/Lightsail. Je pensais que cela pouvait être un problème d’instance, j’ai donc pris un snapshot et j’ai lancé une nouvelle instance dans une région complètement différente et elle reste bloquée à

3536:C 01 Feb 2024 18:24:10.670 * DB saved on disk
3536:C 01 Feb 2024 18:24:10.672 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 1 MB
110:M 01 Feb 2024 18:24:10.761 * Background saving terminated with success
Plugin name is 'discourse-topic-voting', but plugin directory is named 'discourse-voting'
Node.js heap_size_limit (487.0) is less than 2048MB. Setting --max-old-space-size=2048.
110:M 01 Feb 2024 18:29:11.092 * 100 changes in 300 seconds. Saving...
110:M 01 Feb 2024 18:29:11.509 * Background saving started by pid 3721
3721:C 01 Feb 2024 18:29:59.839 * DB saved on disk
3721:C 01 Feb 2024 18:29:59.840 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 1 MB
110:M 01 Feb 2024 18:29:59.876 * Background saving terminated with success

C’est à ce moment qu’il se “bloque” :

ubuntu@ip-172-26-6-122:~$ cat /etc/lsb-release
df -h /
free
vmstat 5 5
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.3 LTS"
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        39G   19G   21G  47% /
               total        used        free      shared  buff/cache   available
Mem:          972524      674416      155656       15932      142452      143064
Swap:        2097148      201824     1895324
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  5 201824 155408   3220 140844  870  860  6959  1176  601 1627  3  4  2 91  0
 1  0 201824 154824   5588 169332    3    0  5503    11  365 1708 39  8  0 53  0
 3  0 202336  67104   4896 159076   48  150   986   194  321 3046 96  4  0  0  0
 0  6 209760  74732    296 114488  283 1738  8385  1934  499 2265 46  5  0 49  0
 0  4 212576  76968    200 115316    0  569  7678   652  387  524  1  1  0 97  0

Et htop montre qu’il est bloqué à consommer des cycles CPU sur node, ember et snapd, car il y a des pics soudains qui prennent 100% du CPU, puis il reste à environ <5% pendant un certain temps, puis il y a à nouveau un pic, et ainsi de suite.

Je soupçonne que le problème vient de la mise à niveau de Discourse elle-même. Existe-t-il un moyen de « réinitialiser » la mise à niveau de Discourse et de la faire redémarrer à partir de zéro ?

Il me semble que quelque chose dans la construction du discours est cassé lorsqu’il essaie de précompiler les assets. Il est simplement bloqué ici sans aucune activité d’E/S ou de consommation de CPU.

Je ne trouve rien dans la recherche du forum sur la façon de réinitialiser une reconstruction depuis la console et je suis à court d’idées. @JammyDodger, je cherche de l’aide auprès des experts qui pourraient éclairer pourquoi la reconstruction est bloquée et comment la réinitialiser.

Je pense que chaque nouveau ./launcher rebuild app en démarre un nouveau, donc si vous avez redémarré et essayé une autre reconstruction, cela devrait recommencer à zéro à chaque fois.

Cela pourrait-il être lié aux changements que vous avez apportés au nombre de licornes ?

C’est une excellente question. Je ne sais pas et c’est ce sur quoi j’espérais que l’équipe de développement puisse commenter. Je vais essayer de le reconstruire à nouveau en utilisant 2 licornes au lieu d’une.

Oui, car c’est le stockage par défaut dans les instances AWS les plus courantes.

Je pense qu’il échange sur le réseau, donc c’est aussi rapide que ce que nous voyons ici.

Alors que l’étape de construction JS est également assez lente sur les petits types d’instances DO, au moins c’est du stockage local AFAIK.

Quant à ce qu’il faut faire ensuite, il semble que la seule issue soit de passer à un type d’instance plus cher.

J’essaierai cela ensuite. Ce qui est surprenant, c’est que j’ai cette instance en fonctionnement depuis de nombreuses années. Jamais eu de problème pour mettre à niveau jusqu’à la version 3.1.5. Soudainement, avec la version 3.2.0, elle rencontre des problèmes. Y a-t-il eu un changement majeur dans les exigences du système ? J’ai essayé plusieurs instances à partir d’instantanés des versions 3.1.1 à 3.1.5 et aucune d’entre elles n’a réussi à passer à la version 3.2.0.

C’est un peu étrange car ce serveur peut exécuter Discourse sans problème, le seul problème est la compilation des fichiers JS. Ce processus est devenu beaucoup plus lourd au cours de la dernière année, et ce, même en tenant compte des efforts multiples que nous avons faits pour le maintenir en fonctionnement sur de petits serveurs.

Ah, d’accord, donc avec une instance de 1G de RAM et un échange sur le réseau, vous pourriez être en mesure de faire fonctionner votre forum au jour le jour, mais la mise à niveau - surtout récemment - consomme beaucoup de RAM. Je vous recommande de prendre quelques minutes d’indisponibilité, de redimensionner temporairement vers une instance de 8G, puis de faire votre mise à niveau et de redimensionner à nouveau. J’ai fait cela, et cela m’a coûté moins d’un dollar supplémentaire. Cela a également fonctionné plus rapidement et m’a évité beaucoup de stress.

L’important est que vous n’avez pas besoin de doubler ou de quadrupler vos dépenses mensuelles - vous effectuez un changement temporaire.

Ouais, j’ai maintenant plus de 20 heures d’indisponibilité. Donc vous avez pris un snapshot, redimensionné une nouvelle instance, mis à niveau Discourse, puis pris un autre snapshot et enfin redimensionné une nouvelle instance. Est-ce que j’ai bien compris ?

Edit : Puis-je restaurer en toute sécurité une sauvegarde 3.1.1 avec une instance 3.2.0 ? En gros, je garde le dernier snapshot fonctionnel en cours d’exécution pour réduire le temps d’arrêt, puis je sauvegarde Discourse à partir de l’instance 3.1.1 et une fois que la nouvelle instance 3.2.0 est prête, je restaure cette sauvegarde Discourse 3.1.1 ?

Quand vous dites échange sur le réseau, à quoi faites-vous référence ? L’instance est autonome, la seule chose sur S3 sont les sauvegardes. J’ai gardé tous les fichiers localement.

Falco a estimé que c’était ce que faisaient EC2/Lightsail - je n’ai pas cette connaissance.

Je pense que oui. Mais demandez un deuxième avis !

Ce n’est pas ce que j’ai fait, mais cela pourrait être équivalent. Avec mes fournisseurs d’hébergement (Digital Ocean et Hetzner), on me propose une action appelée “rescale” ou similaire, par laquelle mon instance s’arrête, quelques minutes s’écoulent, puis une nouvelle instance apparaît avec la bonne adresse IP et tout le contenu du disque, mais avec une quantité de RAM et de CPU plus grande ou plus petite. Dans les deux cas, l’interface fait une distinction claire entre le redimensionnement réversible et le redimensionnement irréversible. Je n’ai jamais pris de snapshot ou de sauvegarde au niveau du fournisseur, et je n’ai jamais utilisé Amazon, donc cela pourrait être différent là-bas. Désolé, aucune expérience directe !

Edit : cela vaut peut-être la peine d’ajouter EC2/Lightsail au titre du sujet ??

Je l’ai remis à 2 depuis 1, cela n’a fait aucune différence. Toujours bloqué.

En regardant les statistiques, cela ne prend pas de CPU, n’utilise pas non plus toute la RAM/Swap disponible. Je ne sais juste pas pourquoi cela rampe au point où il est passé de 20 minutes pour construire 3.1.5 à maintenant des heures dans 3.2.0, il est juste bloqué après la fin de la sauvegarde en arrière-plan.

Qu’est-ce qui me manque ici Falco ? Que pourrait-il faire sans consommer de CPU, de RAM ou d’E/S disque significatives ?

Je ne savais pas qu’à chaque fois que je configurais une nouvelle instance à partir d’un snapshot, le serveur contactait letsencrypt pour un nouveau renouvellement de certificat et maintenant il a dépassé sa limite pour la semaine prochaine.

Quel moyen de forcer Discourse à générer une nouvelle certification en utilisant la solution de contournement fournie ici : https://letsencrypt.org/docs/duplicate-certificate-limit/

EDIT : J’ai réussi à faire fonctionner les certificats. J’ai copié l’intégralité du répertoire letsencrypt de /var/discourse/shared/standalone de l’instance avec certification valide vers la nouvelle instance. J’ai également copié le dossier ssl en plus du dossier letsencrypt - mais la question est : est-ce nécessaire ?

Quelle est la différence entre le dossier letsencrypt et le dossier ssl ? Je demande car j’ai remarqué que les fichiers de certificat dans les deux dossiers sont différents en taille et en horodatage ? @JammyDodger sauriez-vous pourquoi les fichiers de certificat sont stockés dans 2 dossiers différents ?

@JammyDodger @Falco @Ed_S merci à tous pour votre aide dans la résolution de ce problème.

J’ai finalement réussi à le compiler sur une instance avec 2 Go de RAM. Il semble que lors de la tentative de compilation de Discourse 3.2.0, il demandait 64 Go de VM pour ember. Cela semble assez fou.

Il semble donc que la version 3.1.5 soit la dernière à fonctionner sur 1 Go de RAM. À partir de la version 3.2.0, le minimum semble être de 2 Go. @falco @sam pouvons-nous nous attendre à ce que les exigences matérielles doublent continuellement pour mettre à niveau Discourse ? Discourse peut fonctionner très bien sur 1 Go, ce sont les mises à niveau qui le tuent. N’y a-t-il aucun moyen de précompiler les actifs ou les images et de les conserver sur GitHub et de les télécharger lors de la mise à niveau pour réduire la charge de mémoire ? La préoccupation est que pour les petits sites, nous n’avons pas besoin d’instances de 2 Go, 4 Go, 8 Go, etc.

Ed, juste pour information - ma stratégie ne fonctionne pas avec Lightsail. Une fois que vous passez à une instance plus grande, il n’y a aucun moyen de revenir en arrière. Je peux donc prendre un instantané du serveur de 1 Go, puis lancer un nouveau serveur de 2 Go (et mettre à niveau Discourse), mais ensuite, lorsque je prends un instantané du serveur de 2 Go, il n’y a aucun moyen de le relancer sur un serveur de 1 Go (car le système de fichiers passe de 40 Go à 60 Go et cela ne peut pas être inversé). Cela dit, ce n’est toujours pas une situation idéale où il faut “augmenter” la taille du serveur juste pour mettre à jour le logiciel.

Donc, en gros, si vous utilisez Lightsail, vous devez obtenir au moins une instance de 2 Go (adieu 1 Go) et si l’instance de 2 Go pour une raison quelconque (comme nécessiter 64 Go de VM pour un petit site) échoue à compiler/mettre à niveau Discourse, vous êtes foutu :frowning:
La seule solution serait probablement de passer à EC2 ou à quelque chose comme Digital Ocean où vous pouvez dynamiquement augmenter votre RAM/CPU pour terminer la mise à niveau de Discourse, puis la réduire après la fin de la mise à niveau. J’ai toujours du mal à imaginer que nous ayons besoin de plus de ressources pour mettre à niveau le logiciel que pour exécuter le logiciel.

Enfin, ce serait bien si le processus de mise à niveau donnait un message d’erreur s’il avait besoin de plus de RAM mais ne pouvait pas l’obtenir. Échouer silencieusement et ralentir tout le système n’est pas correct (soit dit en passant, pour référence, j’ai essayé overcommit_memory avec 1 et 0 sur mon instance de 1 Go - mais comme je l’ai dit, aucune erreur, même la RAM/swap n’était pas au maximum au moment du blocage d’après les captures d’écran ci-dessus).

À un moment donné, cela ne me dérangerait pas de distribuer une image pré-amorcée : Can Discourse ship frequent Docker images that do not need to be bootstrapped?

Peut-être si toute cette série de contraintes était simplifiée :

  • Vous exécutez un conteneur pg
  • Vous exécutez un conteneur redis
  • Vous exécutez un conteneur pré-amorcé, sans aucun support pour les plugins personnalisés, nous nous contenterions de regrouper avec l’officiel

Cela pourrait fonctionner et être utile pour les gens, le revers de la médaille est que nous allons diverger notre histoire d’installation, ce qui double effectivement notre support pour l’installation gratuite.

Exécuter un cache pour les actifs compilés, je ne suis pas sûr que nous puissions y parvenir, ce sera trop compliqué avec trop de pièces mobiles.