Problème de reconstruction : [Impossible de définir le dual-stack en combinaison avec un endpoint personnalisé.]

Bonjour :wave:

Impossible de reconstruire avec le problème suivant.

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: Impossible de définir le double-stack en combinaison avec un point de terminaison personnalisé. (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 a échoué avec le retour #<Process::Status: pid 3349 exit 1>

Emplacement de l'échec : /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'

exec a échoué avec les paramètres {"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 a échoué avec le code de sortie 1

**ÉCHEC DU BOOTSTRAP** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.

./discourse-doctor peut aider à diagnostiquer le problème.

567dc9e1f9a4e662de6024b8504915d8b6ef1ee2d9b4303af75323ba478679e4

Commit probablement lié : FIX: Use dualstack S3 endpoint for direct uploads (#29611) · discourse/discourse@0568d36 · GitHub

J’utilise stockage d’objets S3 pour télécharger vers DO Spaces. Le problème vient probablement de là.

Merci :slight_smile:

1 « J'aime »

J’ai commenté ces lignes, ce qui permet à la reconstruction de s’exécuter avec succès, mais le site reste bloqué sur l’écran de démarrage, je pense parce qu’il ne peut pas charger les ressources. :thinking: Le mode sans échec pareil…

  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

Des idées ? Je sais que c’est un mauvais moment… :confused:

1 « J'aime »

Salut Don, nous allons examiner ça. Merci de nous avoir signalé le problème.

1 « J'aime »

Merci Natalie :hugs:

Pour un rapide correctif, j’ai reconstruit avec la version cc01555fce59e116b76c912b4c5195e111a652b2, qui est un commit derrière ceci FIX: Use dualstack S3 endpoint for direct uploads (#29611) · discourse/discourse@0568d36 · GitHub

2 « J'aime »

Ma reconstruction avec une configuration Digital Ocean Spaces S3 a commencé à échouer avec cette erreur :

, [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'

Mais omettre de le définir sur whatever fait échouer la construction comme ceci :


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 -- :


J’ai trouvé ceci :

et ceci :

Peut-être que S3_REGION devrait être effacé si un endpoint est défini ici ?

EDIT : Oups. Je pensais avoir cherché. Désolé Falco.

1 « J'aime »

Étrangement, cela me donne cette erreur :

Gem::LoadError : impossible d'activer webrick-1.9.0, webrick-1.8.2 déjà activé (Gem::LoadError)

que je venais de voir sur une instance que j’utilisais pour exécuter une importation, que j’ai « corrigée » en mettant à niveau.

Je suppose que je ne peux tout simplement pas mettre à niveau ce serveur pour le moment. :frowning:

Je ne suis pas sûr, mais cela vaut peut-être la peine d’essayer. J’ai déjà réussi une reconstruction avant cela.

Et juste après cela, j’ai essayé de reconstruire en choisissant le commit. La deuxième fois, la reconstruction s’est déroulée avec succès.

1 « J'aime »

@martin, ce que nous faisons habituellement ici est de fournir un GlobalSetting pour désactiver le comportement qui permet aux personnes exécutant des clones S3 incompatibles de l’activer pour que cela fonctionne.

À mon avis, le comportement actuel devrait rester par défaut, mais des options devraient être fournies pour augmenter la compatibilité.

Voir des exemples similaires dans DISCOURSE_S3_HTTP_CONTINUE_TIMEOUT, DISCOURSE_S3_INSTALL_CORS_RULE, etc.

3 « J'aime »

Ah désolé, c’est de ma faute à tous, ces clones S3 me sortent toujours de la tête. J’ai dû corriger ce problème de point de terminaison personnalisé avec Minio hier. Je pense que la correction ici consiste simplement à ne jamais utiliser dualstack si DISCOURSE_S3_ENDPOINT a été défini puisqu’ils sont incompatibles, et tout le monde ici l’utilise apparemment.

3 « J'aime »

J’ai fusionné un correctif pour cela maintenant :

4 « J'aime »

Merci pour le correctif rapide ! Je suis de retour en affaires. :tada:

Merci pour l’explication claire, Rafael !

C’est parce qu’il y a beaucoup de choses à garder à l’esprit ! Et les tests de spécification, je pense, nécessiteraient ces stub_request ennuyeux que je sais détester écrire.

Pour information, cela me semble correct. Et vous pourriez probablement écrire des tests pour cela qui ne nécessiteraient pas de stubs pour stub_request.

1 « J'aime »

10 messages ont été déplacés vers un nouveau sujet : Impossible de sauvegarder ou d’accéder aux sauvegardes

Je ne pense pas que cela devrait être marqué comme fixed.

Ce changement a très probablement provoqué une interruption des sauvegardes sur plusieurs instances (d’autres ne sachant pas que leurs instances ne sauvegardent pas encore, présumablement).

Cela me suggère que les spécifications ne sont pas assez larges pour capturer tous les cas d’utilisation réels et que des changements sont passés alors qu’ils n’auraient pas dû ?

4 « J'aime »

Il me semble que cela est corrigé uniquement pour les sites où use_s3 est activé, mais pas pour ceux qui utilisent S3 uniquement pour les sauvegardes.

Bien qu’il soit à nouveau possible de reconstruire, c’est juste que les sauvegardes S3 sont cassées. :crying_cat_face:

3 « J'aime »

Le problème de sauvegarde est résolu ici Unable to backup or navigate to backups - #20 by martin

3 « J'aime »

Ce sujet a été automatiquement fermé 3 jours après la dernière réponse. Les nouvelles réponses ne sont plus autorisées.