Cela pourrait-il être corrigé avant la prochaine version, s’il vous plaît ! Je teste le déploiement de nouveaux VPS (une IP différente à chaque fois) et cela échoue toujours deux fois sur trois.
Notez que nous venons de publier un correctif rapide qui empêchera l’échec de la reconstruction en cas d’échec du téléchargement des bases de données maxmind.
Une fois que Discourse 3.3 sera publié, nous réexaminerons comment rendre le téléchargement des bases de données Maxmind moins sujet aux erreurs.
Hm, ça échoue toujours pour moi (installation propre, pas de reconstruction) ?
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.
Pour confirmer, avez-vous suivi discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub et disposez-vous d’identifiants valides pour MaxMind ?
Oui, installation standard, compte_id et clé_licence maxmind valides dans app.yml
Pour confirmer, vous êtes sur la branche tests-passed et non sur stable ? Je viens de tester avec une clé maxmind invalide et je ne vois aucune erreur.
Je ne suis pas sûr que le problème concerne encore les mauvaises informations d’identification, mais la reconstruction a tendance à échouer même avec les bonnes informations d’identification.
Oui
Exactement, j’utilise une clé valide ! (deuxième tentative à l’instant, nouveau VPS, IP différente, échoue toujours avec la même erreur).
J’ai obtenu l’erreur lors de la mise à jour de docker depuis l’administrateur. Je me demande si le problème est causé par les fichiers créés. Cette erreur se produit toujours de la même manière et nous n’obtenons pas d’erreur lorsque nous fermons maxmind. Il y a un problème entre ces deux structures et quelque chose s’affecte mutuellement :
Je commence à penser que Maxmind est un leurre ici. La trace de la pile ne pointe pas du tout vers Maxmind et indique une erreur dans Sprockets. Je devrai creuser davantage pour voir si je peux reproduire cela sur un droplet.
Je pense la même chose. Maxmind n’est peut-être pas un problème, mais son activité met en évidence des problèmes dans certains domaines.
Est-ce que vous exécutez ceci sur digitalocean ? Si oui, puis-je connaître le nombre de vCPUs et la RAM que vous avez sélectionnés ?
Non, j’ai mon propre serveur et PostgreSQL est sur un serveur séparé. J’ai pris note ici, vous pouvez l’examiner :
Combien de RAM et de CPU votre serveur possède-t-il ? J’essaie de reproduire cela et j’ai reconstruit plusieurs fois sur ma gouttelette mais je n’arrive pas à reproduire l’erreur.
25 Go de RAM pour le serveur principal
20 Go de RAM pour le serveur PostgreSQL
8 CPU
4 cœurs CPU
db_shared_buffers: "4096MB"
UNICORN_WORKERS: 8
UNICORN_SIDEKIQ_MAX_RSS: 1500
## Les plugins vont ici
## voir https://meta.discourse.org/t/19157 pour les détails
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
J’ai eu le problème aujourd’hui sur une machine avec (je pense) 16 Go de RAM (mais d’autres choses tournent) et 12 threads ou plus (je peux obtenir les chiffres exacts demain). Il semble que maxmind soit un faux problème, mais à chaque fois, désactiver maxmind le résout toujours (c’est ce que j’ai fait aujourd’hui).\n\nMais maintenant, vous et moi avons tous deux essayé d’ajouter un rescue dans la fonction maxmind et cela ne le résout pas.\n\nPeut-être que quelque chose se passe dans les trucs de précompilation avant ?
J’ai des doutes à ce sujet : assets:precompile
En suivant cette séquence d’événements et en examinant les incidents qui se sont produits entre eux, nous pourrions obtenir quelques éclaircissements :
Regroupement des ressources
…
Téléchargement de MaxMindDB..
… (Peut-être que l’erreur se situe quelque part entre les deux)
assets:precompile
Je viens de réaliser que nous téléchargeons les bases de données Maxmind dans un thread d’arrière-plan tout en exécutant assets:precompile en même temps. D’après les traces que je vois, j’ai l’hypothèse que le thread d’arrière-plan que nous utilisons pour télécharger la base de données Maxmind interfère d’une manière ou d’une autre avec assets:precompile.
Je vais d’abord déployer le correctif ci-dessus et ne pas trop approfondir la cause première, car nous allons retirer le téléchargement des bases de données Maxmind du processus de construction.
Cela semble être une excellente idée. J’essaierai de réactiver maxmind sur quelques sites demain.
Puis-je tester cela maintenant ? Parce que lorsque la mise à jour de l’administrateur a généré une erreur, j’ai voulu le faire depuis ssh et j’ai également obtenu une erreur là-bas. Si vous me dites comment faire, je peux faire la première tentative.


