Isso pode ser corrigido antes do próximo lançamento, por favor! Estou testando a implantação de novos VPSs (IP diferente a cada vez) e ainda falha duas em cada três vezes.
Observe que acabamos de enviar uma correção rápida que impediria a falha da reconstrução ao baixar os bancos de dados maxmind.
Assim que o Discourse 3.3 for lançado, reavaliaremos como podemos tornar o download dos bancos de dados Maxmind menos propenso a erros.
Hm, ainda falha para mim (instalação limpa, não reconstrução)?
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 pid: 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' failed 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.
Apenas para confirmar, você seguiu discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub e tem credenciais válidas para o MaxMind?
Sim, instalação padrão, account_id e license_key válidos da MaxMind em app.yml
Só para confirmar, você está no branch tests-passed e não no stable? Acabei de testar com uma chave maxmind inválida e não estou vendo nenhum erro.
Não tenho certeza se o problema em si é mais sobre credenciais incorretas, mas a reconstrução tende a falhar mesmo com as credenciais corretas.
Sim
Exatamente, estou usando uma chave válida! (segunda tentativa agora mesmo, novo VPS, IP diferente, ainda falha com o mesmo erro).
Recebi o erro ao atualizar o docker pelo admin. Gostaria de saber se o problema é causado pelos arquivos criados. Este erro sempre ocorre da mesma forma e não obtemos erro quando fechamos o maxmind. Existe um problema entre essas duas estruturas e algo está afetando uma à outra:
Começo a pensar que Maxmind é uma pista falsa aqui. O backtrace não aponta para Maxmind de forma alguma e está indicando um erro sendo levantado em sprockets. Terei que investigar mais para ver se consigo reproduzir isso em um droplet.
Eu penso o mesmo. Maxmind pode não ser um problema, mas sua atividade traz problemas em algumas áreas à tona.
Você está executando isso no DigitalOcean? Se sim, posso saber o número de vCPUs e a RAM que você selecionou?
Não, eu tenho meu próprio servidor e o PostgreSQL está em um servidor separado. Fiz uma anotação aqui, você pode revisá-la:
Quantos de RAM e CPU seu servidor tem? Estou tentando reproduzir isso e tenho reconstruído muitas vezes no meu droplet, mas não consigo encontrar o erro.
25gb de ram servidor principal
20gb de ram servidor postgresql
8 cpu
núcleos de cpu 4
db_shared_buffers: "4096MB"
UNICORN_WORKERS: 8
UNICORN_SIDEKIQ_MAX_RSS: 1500
## Plugins vão aqui
## veja https://meta.discourse.org/t/19157 para detalhes
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
Tive o problema hoje em uma máquina com (acho que) 16 GB de RAM (mas outras coisas estão rodando) e 12 ou mais threads (posso obter os números exatos amanhã). Parece que o maxmind é uma pista falsa, mas toda vez, desabilitar o maxmind sempre resolve (foi o que fiz hoje).
Mas agora você e eu tentamos adicionar o rescue na função maxmind e isso não está resolvendo.
Talvez seja algo acontecendo na compilação prévia antes?
Tenho dúvidas sobre isso: assets:precompile
Seguindo esta sequência de eventos e examinando os incidentes que ocorreram entre eles, podemos obter alguma informação:
Agrupamento de ativos
…
Baixando MaxMindDB..
… (Talvez o erro esteja em algum lugar entre)
assets:precompile
Acabei de perceber que baixamos os bancos de dados Maxmind em uma thread em segundo plano enquanto executamos assets:precompile ao mesmo tempo. Com base nos backtraces que estou vendo, tenho uma hipótese de que a thread em segundo plano que usamos para baixar o banco de dados Maxmind está interferindo com assets:precompile de alguma forma.
Vou enviar a correção acima primeiro e não me aprofundar demais na causa raiz, já que vamos mover o download dos bancos de dados Maxmind para fora do processo de build.
Isso parece uma ótima ideia. Tentarei reativar o MaxMind em alguns sites amanhã.
Posso testar agora? Pois quando a atualização do admin deu erro, eu quis fazer pelo ssh e também deu erro por lá. Se você me disser como fazer, eu posso fazer a primeira tentativa.


