Könnte das vor dem nächsten Release behoben werden, bitte! Ich teste die Bereitstellung neuer VPS (jedes Mal eine andere IP), und es schlägt immer noch zwei von drei Malen fehl.
Beachten Sie, dass wir gerade einen schnellen Fix veröffentlicht haben, der verhindert, dass der Rebuild fehlschlägt, wenn das Herunterladen der Maxmind-Datenbanken fehlschlägt.
Sobald Discourse 3.3 veröffentlicht wurde, werden wir uns erneut damit befassen, wie wir das Herunterladen von Maxmind-Datenbanken weniger fehleranfällig gestalten können.
Hm, es schlägt bei mir immer noch fehl (saubere Installation, keine Neuerstellung)?
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.
Um sicherzugehen, haben Sie discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub befolgt und gültige Anmeldeinformationen für MaxMind?
Ja, Standardinstallation, gültige maxmind account_id und license_key in app.yml
Um nur zur Bestätigung, Sie befinden sich im tests-passed-Branch und nicht im stable-Branch? Ich habe es gerade mit einem ungültigen Maxmind-Schlüssel getestet und sehe keine Fehler.
Ich bin mir nicht sicher, ob es bei dem Problem noch um falsche Anmeldedaten geht, aber auch das Neuerstellen schlägt mit den richtigen Anmeldedaten fehl.
Ja
Genau, ich benutze einen gültigen Schlüssel! (zweiter Versuch gerade eben, neuer VPS, andere IP, schlägt immer noch mit demselben Fehler fehl).
Ich habe den Fehler beim Aktualisieren von Docker über den Administrator erhalten. Ich frage mich, ob das Problem durch die erstellten Dateien verursacht wird. Dieser Fehler tritt immer auf die gleiche Weise auf und wir erhalten keinen Fehler, wenn wir Maxmind schließen. Es gibt ein Problem zwischen diesen beiden Strukturen und etwas beeinflusst sich gegenseitig:
Ich fange an zu denken, dass Maxmind hier eine falsche Fährte ist. Der Backtrace zeigt überhaupt nicht auf Maxmind und deutet auf einen Fehler in Sprockets hin. Ich muss weiter graben, um zu sehen, ob ich das auf einem Droplet reproduzieren kann.
Ich denke dasselbe. Maxmind ist vielleicht kein Problem, aber seine Aktivität rückt Probleme in einigen Bereichen in den Vordergrund.
Läuft das auf DigitalOcean? Wenn ja, darf ich wissen, wie viele vCPUs und wie viel RAM Sie ausgewählt haben?
Nein, ich habe meinen eigenen Server und PostgreSQL befindet sich auf einem separaten Server. Ich habe hier eine Notiz gemacht, die Sie überprüfen können:
Wie viel RAM und CPU hat Ihr Server? Ich versuche, dies zu reproduzieren und habe auf meinem Droplet viele Male neu aufgebaut, kann den Fehler aber nicht reproduzieren.
25 GB RAM Hauptserver
20 GB RAM PostgreSQL-Server
8 CPUs
CPU-Kerne 4
db_shared_buffers: "4096MB"
UNICORN_WORKERS: 8
UNICORN_SIDEKIQ_MAX_RSS: 1500
## Plugins gehen hier
## siehe https://meta.discourse.org/t/19157 für Details
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
Ich hatte das Problem heute auf einer Maschine mit (ich glaube) 16 GB RAM (aber andere Dinge laufen) und 12 oder mehr Threads (ich kann morgen genaue Zahlen bekommen). Es scheint, dass Maxmind eine Ablenkung ist, aber jedes Mal, wenn ich Maxmind deaktiviere, löst sich das Problem (das habe ich heute getan).
Aber jetzt haben sowohl Sie als auch ich versucht, die Maxmind-Funktion mit Rescue zu versehen, und es behebt das Problem nicht.
Vielleicht passiert etwas beim Precompiling davor?
Ich hege Zweifel an diesem: assets:precompile
Wenn wir dieser Abfolge von Ereignissen folgen und die Zwischenfälle untersuchen, die zwischen ihnen aufgetreten sind, können wir einige Einblicke gewinnen:
Bundling von Assets
…
Herunterladen von MaxMindDB..
… (Vielleicht liegt der Fehler irgendwo dazwischen)
assets:precompile
Mir ist gerade aufgefallen, dass wir die Maxmind-Datenbanken in einem Hintergrund-Thread herunterladen, während wir gleichzeitig assets:precompile ausführen. Basierend auf den Backtraces, die ich sehe, habe ich die Hypothese, dass der Hintergrund-Thread, den wir zum Herunterladen der Maxmind-Datenbank verwenden, assets:precompile irgendwie durcheinanderbringt.
Ich werde den obigen Fix zuerst ausliefern und nicht zu tief in die Ursachenforschung eintauchen, da wir den Download der Maxmind-Datenbanken aus dem Build-Prozess herausnehmen werden.
Das klingt nach einer großartigen Idee. Ich werde morgen versuchen, MaxMind auf einigen Websites wieder zu aktivieren.
Kann ich das jetzt testen? Denn als das Update vom Administrator einen Fehler gab, wollte ich es von SSH aus tun und bekam auch dort einen Fehler. Wenn Sie mir sagen, wie es geht, kann ich den ersten Versuch machen.


