Potrebbe essere risolto prima della prossima versione, per favore! Sto testando il deployment di nuovi VPS (IP diversi ogni volta) e fallisce ancora due volte su tre.
Si noti che abbiamo appena rilasciato una rapida correzione che impedirà il fallimento della ricompilazione quando il download dei database maxmind non riesce.
Una volta che Discourse 3.3 sarà stato rilasciato, esamineremo nuovamente come possiamo rendere il download dei database Maxmind meno soggetto a errori.
Hm, a me continua a fallire (installazione pulita, non ricompilazione)?
I, [2024-07-30T05:19:47.753779 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'
Purging temp files
Bundling assets
I, [2024-07-30T05:19:58.764890 #1059] INFO -- : Writing /var/www/discourse/public/assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js
I, [2024-07-30T05:19:58.787966 #1059] INFO -- : Writing /var/www/discourse/public/assets/service-worker-77c5660ded6e2c94a6a5ce2594411b46d0e15a1f5b9065e57b85652d7cbe3ead.js
I, [2024-07-30T05:19:58.797458 #1059] INFO -- : Writing /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js
I, [2024-07-30T05:19:58.807019 #1059] INFO -- : Writing /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428dcfd680205516fe211700a71c7adb5cbcf4df2cc5.js
rake aborted!
Zlib::BufError: buffer error (Zlib::BufError)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache/file_store.rb:100:in `<'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache/file_store.rb:100:in `set'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache.rb:212:in `set'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache.rb:136:in `set'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:243:in `store_asset'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:185:in `load_from_unloaded'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:60:in `block in load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cached_environment.rb:47:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/base.rb:66:in `find_asset'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/base.rb:73:in `find_all_linked_assets'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:134:in `block in find'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:133:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:133:in `find'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:186:in `compile'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-rails-3.5.1/lib/sprockets/rails/task.rb:67:in `block (3 levels) in define'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/rake/sprocketstask.rb:147:in `with_logger'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-rails-3.5.1/lib/sprockets/rails/task.rb:66:in `block (2 levels) in define'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
I, [2024-07-30T05:20:01.382260 #1] INFO -- : Downloading MaxMindDB...
I, [2024-07-30T05:20:01.438870 #1] INFO -- : Terminating async processes
I, [2024-07-30T05:20:01.444360 #1] INFO -- : Sending INT to 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 pid: 57
2024-07-30 05:20:01.448 UTC [57] LOG: received fast shutdown request
I, [2024-07-30T05:20:01.449248 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf p
id: 120
120:signal-handler (1722316801) Received SIGTERM scheduling shutdown...
2024-07-30 05:20:01.512 UTC [57] LOG: aborting any active transactions
120:M 30 Jul 2024 05:20:01.523 # User requested shutdown...
120:M 30 Jul 2024 05:20:01.526 * Saving the final RDB snapshot before exiting.
2024-07-30 05:20:01.566 UTC [57] LOG: background worker "logical replication launcher" (PID 72) exited with exit code 1
120:M 30 Jul 2024 05:20:01.586 * DB saved on disk
120:M 30 Jul 2024 05:20:01.589 # Redis is now ready to exit, bye bye...
2024-07-30 05:20:01.598 UTC [67] LOG: shutting down
2024-07-30 05:20:02.090 UTC [57] LOG: database system is shut down
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' fa
iled with return #<Process::Status: pid 1057 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"precompile", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
c9da27502f7c288ec5465ca82b4830123a3c59003527b8f288457c594576adaa
x86_64 arch detected.
Solo per conferma, hai seguito discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub e hai credenziali valide per maxmind?
Sì, installazione standard, account_id e license_key MaxMind validi in app.yml
Solo per conferma, sei sul branch tests-passed e non su stable? L’ho appena testato con una chiave maxmind non valida e non vedo errori.
Non sono sicuro che il problema riguardi più le credenziali errate, ma la ricompilazione tende a fallire anche con le credenziali corrette.
Sì
Esatto, sto usando una chiave valida! (secondo tentativo proprio ora, nuovo VPS, IP diverso, fallisce ancora con lo stesso errore).
Ho riscontrato un errore durante l’aggiornamento di Docker dall’admin. Mi chiedo se il problema sia causato dai file creati. Questo errore si verifica sempre allo stesso modo e non otteniamo un errore quando chiudiamo maxmind. C’è un problema tra queste due strutture e qualcosa si sta influenzando a vicenda:
Sto iniziando a pensare che Maxmind sia un depistaggio qui. Il backtrace non punta affatto a Maxmind e indica un errore sollevato in sprockets. Dovrò scavare più a fondo per vedere se riesco a riprodurre questo su una droplet.
Penso lo stesso. Maxmind potrebbe non essere un problema, ma la sua attività porta in primo piano problemi in alcune aree.
Lo stai eseguendo su DigitalOcean? Se sì, posso sapere il numero di vCPU e la RAM che hai selezionato?
No, ho il mio server e PostgreSQL si trova su un server separato. Ho preso nota qui, puoi rivederla:
Quanta RAM e CPU ha il tuo server? Sto cercando di riprodurre questo problema e ho ricostruito molte volte sul mio droplet ma non riesco a riscontrare l’errore.
25gb ram server principale
20gb ram server postgresql
8 cpu
core cpu 4
db_shared_buffers: "4096MB"
UNICORN_WORKERS: 8
UNICORN_SIDEKIQ_MAX_RSS: 1500
## I plugin vanno qui
## vedi https://meta.discourse.org/t/19157 per i dettagli
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/discourse/discourse-question-answer.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-gamification.git
- git clone https://github.com/discourse/discourse-restricted-replies.git
- git clone https://github.com/discourse/discourse-saved-searches.git
- git clone https://github.com/discourse/discourse-follow.git
# - git clone https://github.com/discourse/discourse-yearly-review.git
- git clone https://github.com/discourse/discourse-voting.git
- git clone https://github.com/discourse/discourse-no-bump.git
- git clone https://github.com/discourse/discourse-math.git
- git clone https://github.com/discourse/discourse-akismet.git
- git clone https://github.com/discourse/discourse-adplugin.git
- git clone https://github.com/spirobel/discourse-matheditor.git
- git clone https://github.com/discourse/discourse-google-one-tap.git
- git clone https://github.com/discourse/discourse-ai.git
# - git clone https://github.com/paviliondev/discourse-custom-wizard.git
- git clone https://github.com/discourse/discourse-reactions.git
- git clone https://github.com/discourse/discourse-subscriptions.git
- git clone https://github.com/discourse/discourse-assign.git
# - git clone https://github.com/discourse/discourse-policy.git
- git clone https://github.com/discourse/discourse-data-explorer.git
# - git clone https://github.com/merefield/discourse-chatbot.git
# after_assets_precompile:
# - exec:
# cd: $home
# cmd:
# - sudo -E -u discourse bundle exec rake s3:upload_assets
# - sudo -E -u discourse bundle exec rake s3:expire_missing_assets
# - sudo -E -u discourse bundle exec rake uploads:migrate_to_s3
Ho riscontrato il problema oggi su una macchina con (credo) 16 GB di RAM (ma altre cose sono in esecuzione) e 12 o più thread (posso ottenere numeri esatti domani). Sembra che maxmind sia un depistaggio, ma ogni volta, disabilitare maxmind lo risolve sempre (questo è quello che ho fatto oggi).
Ma ora sia tu che io abbiamo provato ad aggiungere il rescue alla funzione maxmind e non lo sta risolvendo.
Forse è qualcosa che accade prima nella fase di precompilazione?
Nutro dubbi su questo: assets:precompile
Seguendo questa sequenza di eventi ed esaminando gli incidenti che si sono verificati tra di essi, potremmo ottenere qualche spunto:
Bundling assets
…
Downloading MaxMindDB..
… (Forse l’errore si trova da qualche parte nel mezzo)
assets:precompile
Mi sono appena reso conto che scarichiamo i database Maxmind in un thread in background mentre eseguiamo assets:precompile contemporaneamente. Sulla base dei backtrace che sto vedendo, ho l’ipotesi che il thread in background che utilizziamo per scaricare il database Maxmind stia in qualche modo interferendo con assets:precompile.
Spedirò prima la correzione sopra e non approfondirò troppo la causa principale poiché stiamo per spostare il download dei database Maxmind fuori dal processo di build.
Sembra un’ottima idea. Domani proverò a riattivare maxmind su alcuni siti.
Posso testarlo ora? Perché quando l’aggiornamento dell’amministratore ha dato un errore, ho voluto farlo da ssh e ho ottenuto un errore anche lì. Se mi dici come farlo, posso fare il primo tentativo.


