I, [2024-11-07T08:00:56.758061 #1] INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
ArgumentError: Cannot set dual-stack in combination with a custom endpoint. (ArgumentError)
raise ArgumentError, "Cannot set dual-stack in combination with a custom endpoint."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets failed with return #<Process::Status: pid 3349 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", "cmd"=>["sudo -E -u discourse bundle exec rake s3:upload_assets", "sudo -E -u discourse bundle exec rake s3:expire_missing_assets"]}
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.
567dc9e1f9a4e662de6024b8504915d8b6ef1ee2d9b4303af75323ba478679e4
Ich habe diese Zeilen auskommentiert, was dazu führt, dass der Rebuild erfolgreich durchläuft, die Seite aber beim Splash hängen bleibt, wahrscheinlich weil die Assets nicht geladen werden können. Sicherer Modus dasselbe…
Mein Rebuild mit einem Digital Ocean Spaces S3-Setup schlug mit diesem Fehler fehl:
, [2024-11-07T19:09:38.615466 #1] INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
ArgumentError: Cannot set dual-stack in combination with a custom endpoint. (ArgumentError)
raise ArgumentError, "Cannot set dual-stack in combination with a custom endpoint."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/endpoint_provider.rb:34:in `resolve_endpoint'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/plugins/endpoints.rb:37:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.191.3/lib/seahorse/client/plugins/endpoint.rb:47:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.191.3/lib/aws-sdk-core/plugins/param_validator.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
Aber wenn ich es weglasse und auf whatever setze, schlägt der Build wie folgt fehl:
I, [2024-11-07T19:15:31.060936 #1] INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
I, [2024-11-07T19:15:36.056204 #1] INFO -- :
Ich habe das hier gefunden:
und das:
Vielleicht sollte S3_REGION gelöscht werden, wenn hier ein Endpunkt gesetzt ist?
EDIT: Ups. Ich dachte, ich hätte gesucht. Entschuldige, Falco.
@martin Normalerweise bieten wir hier eine globale Einstellung an, um das Verhalten zu deaktivieren, das es Personen, die inkompatible S3-Klone ausführen, ermöglicht, sich dafür zu entscheiden, damit es funktioniert.
Meiner Meinung nach sollte das aktuelle Verhalten der Standard bleiben, aber Schalter zur Erhöhung der Kompatibilität bereitgestellt werden.
Siehe frühere Beispiele in DISCOURSE_S3_HTTP_CONTINUE_TIMEOUT, DISCOURSE_S3_INSTALL_CORS_RULE usw.
Ah, Entschuldigung, mein Fehler, Leute. Diese S3-Klone entfallen mir immer. Ich musste gestern dieses benutzerdefinierte Endpunktproblem mit Minio beheben. Ich denke, die Lösung hier besteht einfach darin, niemals dualstack zu verwenden, wenn DISCOURSE_S3_ENDPOINT gesetzt wurde, da diese inkompatibel sind, und alle hier scheinen das zu verwenden.
Danke für den schnellen Fix! Ich bin wieder im Geschäft.
Danke für die klare Erklärung, Rafael!
Das liegt daran, dass es viel zu bedenken gibt! Und die Spec-Tests, denke ich, würden diese nervigen stub_requests erfordern, von denen ich weiß, dass ich sie hasse zu schreiben.
Nur zur Info, das klingt für mich richtig. Und Sie könnten wahrscheinlich Tests dafür schreiben, die keine Stubs für stub_requests erfordern.
Ich glaube nicht, dass dies als fixed markiert werden sollte.
Diese Änderung hat höchstwahrscheinlich Backups auf mehreren Instanzen unterbrochen (wobei andere vermutlich noch nicht wissen, dass ihre Instanzen nicht mehr gesichert werden).
Das deutet für mich darauf hin, dass die Spezifikationen nicht breit genug sind, um alle realen Anwendungsfälle zu erfassen, und dass Änderungen durchgehen, die nicht hätten durchgehen sollen?