Aggiornamento da 3.1.x a 3.2.0 si blocca/fallisce su istanza da 1GB

Qualsiasi assistenza sarebbe apprezzata. Sto cercando di aggiornare dalla versione 3.1.5 alla 3.2.0 da 8 ore.

Sembra bloccarsi qui:

Verifica che il launcher sia aggiornato
Recupero dell'origine
Il launcher è aggiornato
Arresto del vecchio container
+ /usr/bin/docker stop -t 600 app
app
2.0.20231218-0429: Pulling from discourse/base
Digest: sha256:468f70b9bb4c6d0c6c2bbb3efc1a5e12d145eae57bdb6946b7fe5558beb52dc1
Status: L'immagine è aggiornata per 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 -- : Lettura da stdin
I, [2024-02-01T05:20:13.670645 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2024-02-01T05:20:13.712975 #1]  INFO -- : Generazione delle localizzazioni (potrebbe richiedere del tempo)...
Generazione completata.

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 già in esecuzione, arresta il container ; exit 1
2024/02/01 05:20:13 socat[18] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): Nessun file o directory
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 -- : File > /etc/service/postgres/run  chmod: +x  chown:
I, [2024-02-01T05:20:13.780586 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2024-02-01T05:20:13.785496 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2024-02-01T05:20:13.790412 #1]  INFO -- : File > /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 -- : Sostituzione di data_directory = '/var/lib/postgresql/13/main' con data_directory = '/shared/postgres_data' in /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.765803 #1]  INFO -- : Sostituzione di (?-mix:#?listen_addresses *=.*) con listen_addresses = '*' in /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.766486 #1]  INFO -- : Sostituzione di (?-mix:#?synchronous_commit *=.*) con synchronous_commit = $db_synchronous_commit in /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.767571 #1]  INFO -- : Sostituzione di (?-mix:#?shared_buffers *=.*) con shared_buffers = $db_shared_buffers in /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.768666 #1]  INFO -- : Sostituzione di (?-mix:#?work_mem *=.*) con work_mem = $db_work_mem in /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.769702 #1]  INFO -- : Sostituzione di (?-mix:#?default_text_search_config *=.*) con default_text_search_config = '$db_default_text_search_config' in /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 -- : Sostituzione di (?-mix:#?checkpoint_segments *=.*) con checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.779400 #1]  INFO -- : Sostituzione di (?-mix:#?logging_collector *=.*) con logging_collector = $db_logging_collector in /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.780719 #1]  INFO -- : Sostituzione di (?-mix:#?log_min_duration_statement *=.*) con log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/13/main/postgresql.conf
I, [2024-02-01T05:20:16.782507 #1]  INFO -- : Sostituzione di (?-mix:^#local +replication +postgres +peer$) con local replication postgres  peer in /etc/postgresql/13/main/pg_hba.conf
I, [2024-02-01T05:20:16.783245 #1]  INFO -- : Sostituzione di (?-mix:^host.*all.*all.*127.*$) con host all all 0.0.0.0/0 md5 in /etc/postgresql/13/main/pg_hba.conf
I, [2024-02-01T05:20:16.783845 #1]  INFO -- : Sostituzione di (?-mix:^host.*all.*all.*::1\/128.*$) con host all all ::/0 md5 in /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:  avvio di PostgreSQL 13.13 (Debian 13.13-1.pgdg110+1) su x86_64-pc-linux-gnu, compilato da gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-02-01 05:20:16.887 UTC [41] LOG:  in ascolto sull'indirizzo IPv4 "0.0.0.0", porta 5432
2024-02-01 05:20:16.887 UTC [41] LOG:  in ascolto sull'indirizzo IPv6 "::", porta 5432
2024-02-01 05:20:16.893 UTC [41] LOG:  in ascolto sulla socket Unix "/var/run/postgresql/.s.PGSQL.5432"
2024-02-01 05:20:16.902 UTC [44] LOG:  il sistema di database è stato arrestato il 2024-02-01 05:20:02 UTC
2024-02-01 05:20:16.911 UTC [41] LOG:  il sistema di database è pronto ad accettare connessioni
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:  il database "discourse" esiste già
2024-02-01 05:20:21.897 UTC [54] postgres@postgres STATEMENT:  CREATE DATABASE discourse;
createdb: errore: creazione del database fallita: ERROR:  il database "discourse" esiste già
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:  il ruolo "discourse" esiste già
2024-02-01 05:20:21.987 UTC [58] postgres@discourse STATEMENT:  create user discourse;
ERROR:  il ruolo "discourse" esiste già
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'estensione "hstore" esiste già, salto
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'estensione "pg_trgm" esiste già, salto
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'estensione "vector" esiste già, salto
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'estensione "hstore" esiste già, salto
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'estensione "pg_trgm" esiste già, salto
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'estensione "vector" esiste già, salto
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 -- : File > /var/lib/postgresql/take-database-backup  chmod: +x  chown: postgres:postgres
I, [2024-02-01T05:20:22.572125 #1]  INFO -- : File > /var/spool/cron/crontabs/postgres  chmod:   chown:
I, [2024-02-01T05:20:22.572526 #1]  INFO -- : > echo postgres installato!
I, [2024-02-01T05:20:22.575793 #1]  INFO -- : postgres installato!

I, [2024-02-01T05:20:22.580912 #1]  INFO -- : File > /etc/service/redis/run  chmod: +x  chown:
I, [2024-02-01T05:20:22.585785 #1]  INFO -- : File > /etc/service/redis/log/run  chmod: +x  chown:
I, [2024-02-01T05:20:22.590830 #1]  INFO -- : File > /etc/runit/3.d/10-redis  chmod: +x  chown:
I, [2024-02-01T05:20:22.593112 #1]  INFO -- : Sostituzione di daemonize yes con  in /etc/redis/redis.conf
I, [2024-02-01T05:20:22.594012 #1]  INFO -- : Sostituzione di (?-mix:^pidfile.*$) con  in /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 -- : Sostituzione di (?-mix:^logfile.*$) con logfile "" in /etc/redis/redis.conf
I, [2024-02-01T05:20:22.599588 #1]  INFO -- : Sostituzione di (?-mix:^bind .*$) con  in /etc/redis/redis.conf
I, [2024-02-01T05:20:22.601300 #1]  INFO -- : Sostituzione di (?-mix:^dir .*$) con dir /shared/redis_data in /etc/redis/redis.conf
I, [2024-02-01T05:20:22.603062 #1]  INFO -- : Sostituzione di (?-mix:^protected-mode yes) con protected-mode no in /etc/redis/redis.conf
I, [2024-02-01T05:20:22.604759 #1]  INFO -- : Sostituzione di # io-threads 4 con io-threads $redis_io_threads in /etc/redis/redis.conf
I, [2024-02-01T05:20:22.606503 #1]  INFO -- : > echo redis installato
I, [2024-02-01T05:20:22.609035 #1]  INFO -- : redis installato

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 Feb 2024 05:20:22.631 # oO0OoO0OoO0Oo Redis sta avviando oO0OoO0OoO0Oo
110:C 01 Feb 2024 05:20:22.631 # Versione Redis=7.0.7, bit=64, commit=00000000, modificato=0, pid=110, appena avviato
110:C 01 Feb 2024 05:20:22.631 # Configurazione caricata
110:M 01 Feb 2024 05:20:22.632 * orologio monotono: POSIX clock_gettime
110:M 01 Feb 2024 05:20:22.633 * Modalità di esecuzione=standalone, porta=6379.
110:M 01 Feb 2024 05:20:22.633 # Server inizializzato
110:M 01 Feb 2024 05:20:22.634 # ATTENZIONE: l'overcommit della memoria deve essere abilitato! Senza di esso, un salvataggio in background o una replicazione potrebbero fallire in condizioni di memoria bassa. Se disabilitato, può anche causare fallimenti senza condizioni di memoria bassa, vedi https://github.com/jemalloc/jemalloc/issues/1328. Per risolvere questo problema aggiungi 'vm.overcommit_memory = 1' a /etc/sysctl.conf e poi riavvia o esegui il comando 'sysctl vm.overcommit_memory=1' per rendere effettiva la modifica.
110:M 01 Feb 2024 05:20:22.634 # ATTENZIONE: il tuo sistema è configurato per usare la clocksource 'xen' che potrebbe portare a prestazioni degradate. Controlla il risultato del controllo di sistema [slow-clocksource]: esegui 'redis-server --check-system' per verificare se la clocksource del sistema non sta degradando le prestazioni.
110:M 01 Feb 2024 05:20:22.635 * Caricamento RDB prodotto dalla versione 7.0.7
110:M 01 Feb 2024 05:20:22.635 * Età RDB 28 secondi
110:M 01 Feb 2024 05:20:22.635 * Utilizzo memoria RDB alla creazione 12.85 Mb
110:M 01 Feb 2024 05:20:22.670 * Caricamento RDB completato, chiavi caricate: 11479, chiavi scadute: 6.
110:M 01 Feb 2024 05:20:22.670 * DB caricato da disco: 0.035 secondi
110:M 01 Feb 2024 05:20:22.670 * Pronto ad accettare connessioni
I, [2024-02-01T05:20:32.621081 #1]  INFO -- :
I, [2024-02-01T05:20:32.621808 #1]  INFO -- : > thpoff echo "thpoff è installato!"
I, [2024-02-01T05:20:32.626389 #1]  INFO -- : thpoff è installato!

I, [2024-02-01T05:20:32.626901 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "Interruzione! La mail non è configurata!"; 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 "Interruzione! Il dominio non è configurato!"; 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 "Interruzione! Il CDN deve avere un protocollo specificato. Una volta corretto dovresti ribake i tuoi post ora per correggere tutti i post."; 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 -- : File > /etc/cron.d/anacron  chmod:   chown:
I, [2024-02-01T05:20:32.882091 #1]  INFO -- : File > /etc/runit/1.d/copy-env  chmod: +x  chown:
I, [2024-02-01T05:20:32.887278 #1]  INFO -- : File > /etc/service/unicorn/run  chmod: +x  chown:
I, [2024-02-01T05:20:32.892443 #1]  INFO -- : File > /etc/service/nginx/run  chmod: +x  chown:
I, [2024-02-01T05:20:32.897678 #1]  INFO -- : File > /etc/runit/3.d/01-nginx  chmod: +x  chown:
I, [2024-02-01T05:20:32.902952 #1]  INFO -- : File > /etc/runit/3.d/02-unicorn  chmod: +x  chown:
I, [2024-02-01T05:20:32.903394 #1]  INFO -- : Sostituzione di # postgres con sv start postgres || exit 1 in /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 Feb 2024 05:20:32.915 # oO0OoO0OoO0Oo Redis sta avviando oO0OoO0OoO0Oo
137:C 01 Feb 2024 05:20:32.918 # Versione Redis=7.0.7, bit=64, commit=00000000, modificato=0, pid=137, appena avviato
137:C 01 Feb 2024 05:20:32.918 # Configurazione caricata
137:M 01 Feb 2024 05:20:32.919 * orologio monotono: POSIX clock_gettime
137:M 01 Feb 2024 05:20:32.920 # Avviso: Impossibile creare la socket TCP di ascolto del server *:6379: bind: Indirizzo già in uso
137:M 01 Feb 2024 05:20:32.920 # Ascolto sulla porta 6379 (TCP) fallito, interruzione.
Aggiornamento file: 100% (33715/33715), fatto.
I, [2024-02-01T05:20:39.803997 #1]  INFO -- : HEAD è ora a 6ab1a19e9 DEV: Converti min_trust_level_to_allow_invite in gruppi (#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
'
Da https://github.com/discourse/discourse
 - [eliminato]             (nessuno)     -> origin/0-drop-code
 - [eliminato]             (nessuno)     -> origin/bulk-button-class
 - [eliminato]             (nessuno)     -> origin/dependabot/bundler/excon-0.108.0
 - [eliminato]             (nessuno)     -> origin/dependabot/bundler/hashdiff-1.1.0
 - [eliminato]             (nessuno)     -> origin/dependabot/bundler/parallel-1.24.0
 - [eliminato]             (nessuno)     -> origin/dependabot/bundler/rubocop-discourse-3.6.0
 - [eliminato]             (nessuno)     -> origin/dependabot/npm_and_yarn/app/assets/javascripts/uppy/drop-target-2.0.2
 - [eliminato]             (nessuno)     -> origin/dev/add-new-chat-metrics
 - [eliminato]             (nessuno)     -> origin/dev/allow-chat-mentions-to-have-several-notifications
 - [eliminato]             (nessuno)     -> origin/dev/convert-min-trust-level-to-create-tag-to-group
 - [eliminato]             (nessuno)     -> origin/dev/convert-min-trust-level-to-ignore-to-groups
 - [eliminato]             (nessuno)     -> origin/dev/rethink-mass-mentions-polymorphic
 - [eliminato]             (nessuno)     -> origin/feature/migrations-schema-generator
 - [eliminato]             (nessuno)     -> origin/fix-join-filter-upload
 - [eliminato]             (nessuno)     -> origin/fix-modal-flash-minor
 - [eliminato]             (nessuno)     -> origin/global-notice-reactive
 - [eliminato]             (nessuno)     -> origin/labeler
 - [eliminato]             (nessuno)     -> origin/low-ram-help
 - [eliminato]             (nessuno)     -> origin/multi-invite
 - [eliminato]             (nessuno)     -> origin/table-builder-modal-modifier
 - [eliminato]             (nessuno)     -> origin/wip_categories
 - [eliminato]             (nessuno)     -> origin/wizard-split
   6ab1a19e9..969ab0fd6  main                    -> origin/main
 * [nuovo branch]          0-category-reorder      -> origin/0-category-reorder
 * [nuovo branch]          0-ember-bump            -> origin/0-ember-bump
 * [nuovo branch]          0-event-helper          -> origin/0-event-helper
 * [nuovo branch]          0-extend-native         -> origin/0-extend-native
 * [nuovo branch]          0-rev                   -> origin/0-rev
 * [nuovo branch]          add-api-for-forced-auth -> origin/add-api-for-forced-auth
 * [nuovo branch]          amend-visit-copy        -> origin/amend-visit-copy
 * [nuovo branch]          asciinema-iframe        -> origin/asciinema-iframe
 * [nuovo branch]          chat/original-message-link -> origin/chat/original-message-link
 * [nuovo branch]          convert-header-to-glimmer -> origin/convert-header-to-glimmer
 * [nuovo branch]          decorator-transforms    -> origin/decorator-transforms
 * [nuovo branch]          dependabot/bundler/omniauth-2.0.0 -> origin/dependabot/bundler/omniauth-2.0.0
 * [nuovo branch]          dependabot/bundler/parallel_tests-4.4.0 -> origin/dependabot/bundler/parallel_tests-4.4.0
 * [nuovo branch]          dev-convert-topic-map-expanded-widget-to-component -> origin/dev-convert-topic-map-expanded-widget-to-component
 * [nuovo 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
 * [nuovo 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  (aggiornamento forzato)
 * [nuovo branch]          dev/experiment-theme-settings-free-ui -> origin/dev/experiment-theme-settings-free-ui
 * [nuovo branch]          dev/make-admins-tl4-in-tests -> origin/dev/make-admins-tl4-in-tests
 * [nuovo branch]          dev/promote-plugin-post-deploy-migrations -> origin/dev/promote-plugin-post-deploy-migrations
 * [nuovo branch]          dev/proof-of-concept-rewriting-mentions-notification-logic -> origin/dev/proof-of-concept-rewriting-mentions-notification-logic
 * [nuovo branch]          dev_category_order_database -> origin/dev_category_order_database
 * [nuovo branch]          dev_update_category_position -> origin/dev_update_category_position
 * [nuovo branch]          ellaestigoy-patch-2     -> origin/ellaestigoy-patch-2
 * [nuovo branch]          fast-edit-expand-regex  -> origin/fast-edit-expand-regex
 * [nuovo branch]          feature/add-new-illegal-flag-reason -> origin/feature/add-new-illegal-flag-reason
 * [nuovo branch]          feature/custom-date-range -> origin/feature/custom-date-range
 * [nuovo branch]          feature/paste-upload-on-first-upload-input-templates -> origin/feature/paste-upload-on-first-upload-input-templates
 * [nuovo branch]          feature_async_load_colors -> origin/feature_async_load_colors
 * [nuovo branch]          fix-email-category-badge -> origin/fix-email-category-badge
 * [nuovo branch]          fix_category_chooser    -> origin/fix_category_chooser
 * [nuovo branch]          fix_in_any_groups       -> origin/fix_in_any_groups
 * [nuovo branch]          fix_preload_sidebar_categories -> origin/fix_preload_sidebar_categories
 * [nuovo branch]          fix_reviewable_translation -> origin/fix_reviewable_translation
   7f2bdca65..b851b879c  generic-import-latest   -> origin/generic-import-latest
 * [nuovo branch]          hijacks                 -> origin/hijacks
 * [nuovo branch]          issue/avatar-upload-permission-serialize -> origin/issue/avatar-upload-permission-serialize
 * [nuovo 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  (aggiornamento forzato)
 + 0fa691496...b0f74a188 plugin-extra-js         -> origin/plugin-extra-js  (aggiornamento forzato)
 * [nuovo branch]          promote-migration-tweak -> origin/promote-migration-tweak
 * [nuovo 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
 * [nuovo branch]          revert-bulk-topic-actions -> origin/revert-bulk-topic-actions
 * [nuovo branch]          sidebar-above-outlet    -> origin/sidebar-above-outlet
 * [nuovo branch]          site-logo-height        -> origin/site-logo-height
 * [nuovo branch]          soft-load-topic-results -> origin/soft-load-topic-results
   d7f7f79b6..968b1a57e  stable                  -> origin/stable
 * [nuovo branch]          support-reset-bump-date-post-id -> origin/support-reset-bump-date-post-id
   6ab1a19e9..969ab0fd6  tests-passed            -> origin/tests-passed
 * [nuovo branch]          unhide_lazy_load_categories -> origin/unhide_lazy_load_categories
 * [nuovo branch]          universal-nonce         -> origin/universal-nonce
 * [nuovo branch]          unread-mobile-indicator -> origin/unread-mobile-indicator
 * [nuovo branch]          virtual-scroll-list     -> origin/virtual-scroll-list
 t [aggiornamento tag]          beta                    -> beta
 t [aggiornamento tag]          latest-release          -> latest-release
 * [nuovo tag]             v3.1.4                  -> v3.1.4
 * [nuovo tag]             v3.1.5                  -> v3.1.5
 * [nuovo tag]             v3.2.0                  -> v3.2.0
 * [nuovo tag]             v3.2.0.beta4            -> v3.2.0.beta4
 * [nuovo 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
'
Passato a un nuovo branch 'stable'
I, [2024-02-01T05:20:44.064865 #1]  INFO -- : Branch 'stable' impostato per tracciare il branch remoto 'stable' da '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 -- : Sostituzione di # redis con sv start redis || exit 1 in /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
Clonazione in '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
Clonazione in '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
Clonazione in '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
Clonazione in '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
Clonazione in '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
Clonazione in '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
Clonazione in '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
Clonazione in '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 -- : Sostituzione di pid /run/nginx.pid; con daemon off; in /etc/nginx/nginx.conf
I, [2024-02-01T05:20:47.109528 #1]  INFO -- : Sostituzione di (?m-ix:upstream[^\}]+\}) con upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2024-02-01T05:20:47.110130 #1]  INFO -- : Sostituzione di (?-mix:server_name.+$) con server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2024-02-01T05:20:47.110992 #1]  INFO -- : Sostituzione di (?-mix:client_max_body_size.+$) con client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2024-02-01T05:20:47.111810 #1]  INFO -- : Sostituzione di (?-mix:worker_connections.+$) con worker_connections $nginx_worker_connections ; in /etc/nginx/nginx.conf
I, [2024-02-01T05:20:47.112296 #1]  INFO -- : > echo "configurazione web completata"
I, [2024-02-01T05:20:47.114305 #1]  INFO -- : configurazione web completata

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 -- : Installato con successo bundler-2.5.3
1 gem installato

Si è verificato un errore durante il mio aggiornamento

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

Per favore aiutami a correggerlo.

C’è la possibilità che tu non abbia abbastanza RAM, causando un notevole swapping, il che significa che la CPU non sarà sovraccarica perché la macchina sta sempre spostando elementi dentro e fuori dalla memoria.

Puoi misurare le cose dalla riga di comando:

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

sia con la macchina in uno stato di quiete, sia nel momento in cui è bloccata. (Connettiti da una seconda finestra per ottenere una seconda riga di comando. O simile.)

Grazie, con questa ricostruzione, sta andando molto, molto lentamente con yarn, la CPU è a malapena utilizzata e non sembra esserci molto I/O. Sono un po’ perso sul perché stia rallentando.

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-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  4  51296  75956  56504 440780  951  936  7442  1197  620 1597  2  4  2 91  0
 0  5  51296  69668  56632 444976    0    0   418   585  389  893  2  2  0 96  0
 0  4  51296  65384  57280 448368    0    0   422   599  382  906  1  1  0 97  0
 0  4  51296  74460  57564 439444    0    0   506   546  399  946  1  3  0 96  0
 0  4  51296  64588  57828 444900    0    0   545   614  407  983  2  2  0 96  0

Prima della versione 3.2.0, le ricostruzioni andavano generalmente a gonfie vele e venivano completate in circa 10-20 minuti.

Grazie. Quindi, niente scambi, non è un problema di RAM. Hai un I/O a blocchi costante. Potrebbe essere archiviazione remota? È tutto locale o hai archiviazione cloud coinvolta?

Noto che sia snapd che amazon-ssm-agent hanno accumulato una notevole quantità di tempo di CPU, anche se la loro percentuale è zero. Non so cosa stia succedendo lì: non ho nessuno dei due.

Se l’I/O è davvero lento, potrebbe essere che stai condividendo una macchina (e un disco) con un vicino molto esigente. Forse puoi chiedere al tuo provider di hosting di spostarti, o controllare?

Mi dispiace, al momento non ci sono buone risposte.

Esecuzione su EC2/Lightsail. Pensavo potesse essere un problema dell’istanza, quindi ho creato uno snapshot e avviato una nuova istanza in una regione completamente diversa e si blocca ancora a

3536:C 01 Feb 2024 18:24:10.670 * DB salvato su disco
3536:C 01 Feb 2024 18:24:10.672 * Fork CoW per RDB: corrente 1 MB, picco 1 MB, medio 1 MB
110:M 01 Feb 2024 18:24:10.761 * Salvataggio in background terminato con successo
Il nome del plugin è 'discourse-topic-voting', ma la directory del plugin si chiama 'discourse-voting'
Il limite heap_size di Node.js (487.0) è inferiore a 2048 MB. Impostazione di --max-old-space-size=2048.
110:M 01 Feb 2024 18:29:11.092 * 100 modifiche in 300 secondi. Salvataggio in corso...
110:M 01 Feb 2024 18:29:11.509 * Salvataggio in background avviato dal processo 3721
3721:C 01 Feb 2024 18:29:59.839 * DB salvato su disco
3721:C 01 Feb 2024 18:29:59.840 * Fork CoW per RDB: corrente 1 MB, picco 1 MB, medio 1 MB
110:M 01 Feb 2024 18:29:59.876 * Salvataggio in background terminato con successo

Questo è il punto in cui si “blocca”:

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

e htop mostra che è bloccato a consumare cicli di CPU su node, ember e snapd, poiché improvvisamente aumenta e occupa il 100% della CPU per poi rimanere intorno al <5% per un po’ e poi aumentare di nuovo e così via.

Sospetto che sia un problema con l’aggiornamento di Discourse stesso. Esiste un modo per “resettare” l’aggiornamento di Discourse e farlo ripartire da zero?

Mi sembra che qualcosa nel processo di build di Discourse sia rotto quando sta cercando di precompilare gli asset. È semplicemente bloccato qui senza consumo di I/O o CPU.

Non riesco a trovare nulla nella ricerca del forum su come reimpostare una ricostruzione dalla console e sono a corto di idee. @JammyDodger cerco un aiuto dagli esperti che possano fare luce sul motivo per cui la ricostruzione si è bloccata e su come reimpostarla.

Penso che ogni nuova ./launcher rebuild app ne avvii una nuova, quindi se hai riavviato e provato un’altra ricostruzione, dovrebbe partire da zero ogni volta.

Potrebbe essere collegato alle modifiche apportate al numero di unicorni?

Ottima domanda. Non lo so ed è proprio su questo che speravo potesse intervenire il team di sviluppo. Proverò a ricostruirlo di nuovo usando 2 unicorni invece di 1.

Sì, come lo storage predefinito nelle istanze AWS più comuni

Penso che stia scambiando sulla rete, quindi è veloce come vediamo qui.

Mentre anche l’esecuzione del passaggio di build JS è piuttosto lenta sui tipi di istanza piccoli di DO, almeno è storage locale per quanto ne so.

Per quanto riguarda cosa fare dopo, sembra che l’unica via d’uscita sia passare a un tipo di istanza più costoso.

Ci proverò la prossima volta. La cosa sorprendente è che ho questa istanza in esecuzione da molti anni. Non ho mai avuto problemi ad aggiornare fino alla versione 3.1.5. Improvvisamente con la versione 3.2.0 sta avendo problemi. C’è stato un grande cambiamento nei requisiti di sistema? Ho provato più istanze da snapshot dalla versione 3.1.1 alla 3.1.5 e nessuna di esse completa l’aggiornamento alla versione 3.2.0.

È un po’ strano perché quel server può eseguire Discourse senza problemi, l’intero problema è “solo” la compilazione dei file JS. Quel processo è diventato molto più pesante nell’ultimo anno, e questo anche tenendo conto dei numerosi sforzi che abbiamo fatto per mantenerlo in esecuzione su piccoli server.

Ah, OK, quindi con un’istanza da 1G di RAM e lo swapping sulla rete, potresti essere in grado di gestire il tuo forum giorno per giorno, ma l’aggiornamento, specialmente di recente, richiede molta RAM. Ti consiglio di prenderti qualche minuto di inattività, ridimensionare temporaneamente a un’istanza da 8G, quindi eseguire l’aggiornamento e poi ridimensionare di nuovo. L’ho fatto e mi è costato meno di un dollaro in più. Ha anche funzionato più velocemente e mi ha risparmiato molto stress.

La cosa importante è che non è necessario raddoppiare o quadruplicare la spesa mensile: si effettua una modifica temporanea.

Sì, ho già più di 20 ore di inattività. Quindi hai fatto uno snapshot, hai ridimensionato una nuova istanza, hai aggiornato Discourse, poi hai fatto un altro snapshot e poi hai ridimensionato una nuova istanza. Ho capito bene?

Modifica: Posso ripristinare in sicurezza un backup 3.1.1 con un’istanza 3.2.0? In pratica, mantengo in esecuzione l’ultimo snapshot funzionante per ridurre i tempi di inattività, quindi eseguo il backup di Discourse dall’istanza 3.1.1 e, una volta pronta la nuova istanza 3.2.0, ripristino quel backup di Discourse 3.1.1?

Quando dici “scambiando sulla rete”, a cosa ti riferisci? L’istanza è autonoma, l’unica cosa su S3 sono i backup. Ho tenuto tutti i file locali.

Falco ha ipotizzato che sia quello che fanno EC2/Lightsail, ma non ho quella conoscenza.

Penso di sì. Ma prendi una seconda opinione!

Non è quello che ho fatto, ma potrebbe essere equivalente. Con i miei provider di hosting (Digital Ocean e Hetzner) mi viene offerta un’azione chiamata “rescale” o simile, per cui la mia istanza si spegne, passano alcuni minuti e poi appare una nuova istanza con il giusto indirizzo IP e tutto il contenuto del disco corretto, ma con una quantità maggiore o minore di RAM e CPU. In entrambi i casi, l’interfaccia fa una netta distinzione tra il ridimensionamento reversibile e quello irreversibile. Non ho mai fatto uno snapshot o un backup a livello di provider e non ho mai usato Amazon, quindi potrebbe essere diverso lì. Mi dispiace, nessuna esperienza diretta!

Modifica: potrebbe valere la pena aggiungere EC2/Lightsail al titolo dell’argomento??

L’ho reimpostato da 1 a 2, non ha fatto differenza. Ancora bloccato.

Guardando le statistiche, non sta utilizzando la CPU, né tutta la RAM/Swap disponibile. Non so proprio perché stia rallentando al punto che è passato da 20 minuti per compilare la 3.1.5 a ore nella 3.2.0, è semplicemente bloccato dopo che il salvataggio in background termina.

Cosa mi sfugge qui Falco? Cosa potrebbe fare senza occupare CPU, RAM o un I/O del disco significativo?

Non mi ero reso conto che ogni volta che impostavo una nuova istanza da uno snapshot, il server contattava letsencrypt per un nuovo rinnovo del certificato e ora ha superato il limite per la prossima settimana.

Un modo per forzare discourse a generare un nuovo certificato utilizzando la soluzione alternativa fornita qui: https://letsencrypt.org/docs/duplicate-certificate-limit/

MODIFICA: Sono riuscito a far funzionare i certificati. Ho copiato l’intera directory letsencrypt da /var/discourse/shared/standalone dall’istanza con certificato valido alla nuova istanza. Ho anche copiato la cartella ssl oltre alla cartella letsencrypt, ma la domanda è: è necessario?

Qual è la differenza tra la cartella letsencrypt e la cartella ssl? Chiedo perché ho notato che i file del certificato nelle due cartelle hanno dimensioni e timestamp diversi? @JammyDodger sapresti dirmi perché i file del certificato sono archiviati in 2 cartelle diverse?

@JammyDodger @Falco @Ed_S grazie a tutti per il vostro aiuto nel risolvere questo problema.

Quindi sono finalmente riuscito a farlo compilare su un’istanza con 2 GB di RAM. Sembra che durante il tentativo di compilare discourse 3.2.0 richiedesse 64 GB di VM per ember. Sembra piuttosto selvaggio.

Quindi sembra che 3.1.5 sia l’ultima versione che funzionerà con 1 GB di RAM. A partire dalla versione 3.2.0, il minimo sembra essere 2 GB. @falco @sam possiamo aspettarci che i requisiti hardware continuino a raddoppiare per aggiornare discourse? Discourse può funzionare felicemente con 1 GB, sono gli aggiornamenti che lo stanno uccidendo. Non c’è modo di precompilare gli asset o le immagini e conservarli su GitHub e farli scaricare durante l’aggiornamento per ridurre il carico di memoria? La preoccupazione è che per i siti più piccoli, non abbiamo bisogno di istanze da 2 GB, 4 GB, 8 GB, ecc.

Ed, solo per tua informazione: la mia strategia non funziona con Lightsail. Una volta effettuato l’aggiornamento a un’istanza più grande, non è possibile tornare indietro. Quindi posso fare uno snapshot del server da 1 GB, quindi avviare un nuovo server da 2 GB (e aggiornare discourse), ma poi quando faccio uno snapshot del server da 2 GB non c’è modo di ripristinarlo su un server da 1 GB (perché il file system passa da 40 GB a 60 GB e questo non può essere invertito). Detto questo, non è comunque una situazione felice che sia necessario “aumentare” il server solo per aggiornare il software.

Quindi, in pratica, se stai usando Lightsail, devi ottenere almeno un’istanza da 2 GB (addio 1 GB) e se l’istanza da 2 GB per qualsiasi motivo (come la necessità di 64 GB di VM per un piccolo sito) non riesce a compilare/aggiornare discourse, sei fregato :frowning:
L’unica soluzione sarebbe probabilmente passare a EC2 o qualcosa come Digital Ocean dove puoi aumentare dinamicamente la tua RAM/CPU per completare l’aggiornamento di discourse e poi ridurla dopo che l’aggiornamento è completato. Ho ancora difficoltà a immaginare che abbiamo bisogno di più risorse per aggiornare il software che per eseguire il software.

Infine, sarebbe bello se il processo di aggiornamento desse un qualche tipo di errore se necessita di più RAM ma non riesce ad ottenerla. Fallire silenziosamente e causare il rallentamento dell’intero sistema non è giusto (tra l’altro, per riferimento, ho provato overcommit_memory con 1 e 0 sulla mia istanza da 1 GB - ma come ho detto, nessun errore, nemmeno la RAM/swap era al massimo al momento dell’impuntamento dagli screenshot sopra).

A un certo punto non mi dispiacerebbe distribuire un’immagine con bootstrap: Can Discourse ship frequent Docker images that do not need to be bootstrapped?

Forse se tutta questa serie di vincoli fosse semplificata:

  • Esegui un container pg
  • Esegui un container redis
  • Esegui un container pre-bootstrap, con zero supporto per plugin personalizzati, li raggrupperemmo con quelli ufficiali

Questo potrebbe funzionare ed essere utile per le persone, lo svantaggio è che divergeremmo la nostra storia di installazione, il che raddoppia di fatto il nostro supporto per l’installazione gratuita

Eseguire una cache per gli asset compilati, non sono sicuro di poterlo fare, sarà troppo complicato con troppe parti in movimento.