Problema al reconstruir: [No se puede establecer dual-stack en combinación con un endpoint personalizado]

Hola :wave:

No puedo reconstruir con el siguiente problema.

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: No se puede establecer dual-stack en combinación con un punto final personalizado. (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 falló con el retorno #<Process::Status: pid 3349 exit 1>

Ubicación del fallo: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'

exec falló con los parámetros {"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 falló con el código de salida 1

**FALLÓ EL ARRANQUE** desplácese hacia arriba y busque mensajes de error anteriores, puede haber más de uno.

./discourse-doctor puede ayudar a diagnosticar el problema.

567dc9e1f9a4e662de6024b8504915d8b6ef1ee2d9b4303af75323ba478679e4

Probablemente relacionado con el commit: FIX: Use dualstack S3 endpoint for direct uploads (#29611) · discourse/discourse@0568d36 · GitHub

Utilizo almacenamiento de objetos S3 para subir a DO Spaces. El problema probablemente esté relacionado con esto.

Gracias :slight_smile:

1 me gusta

Comenté estas líneas, lo que hace que la reconstrucción se ejecute correctamente, pero el sitio se queda atascado en la pantalla de inicio, creo que porque no puede cargar los activos. :thinking: El modo seguro es lo mismo…

  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

¿Alguna idea? Sé que es un mal momento… :confused:

1 me gusta

Hola Don, le echaremos un vistazo. Gracias por informar.

1 me gusta

Gracias Natalie :hugs:

Como solución rápida, he reconstruido con la versión cc01555fce59e116b76c912b4c5195e111a652b2, que está un commit por detrás de esta FIX: Use dualstack S3 endpoint for direct uploads (#29611) · discourse/discourse@0568d36 · GitHub

2 Me gusta

Mi reconstrucción con una configuración de Digital Ocean Spaces S3 comenzó a fallar con este error:

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

Pero omitir la configuración a whatever hace que la compilación falle de esta manera:


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


Encontré esto:

y esto:

¿Quizás S3_REGION debería borrarse si se establece un endpoint aquí?

EDIT: Oops. Pensé que había buscado. Perdón, Falco.

1 me gusta

Extrañamente, eso me da este error:

Gem::LoadError: no se puede activar webrick-1.9.0, ya está activado webrick-1.8.2 (Gem::LoadError)

que acababa de ver en una instancia que estaba usando para ejecutar una importación, que “solucioné” actualizando.

Supongo que simplemente no puedo actualizar este servidor ahora mismo. :pensive_face:

No estoy seguro, pero tal vez valga la pena intentarlo. Ya he reconstruido con éxito antes de hacer esto.

Y justo después de esto, intenté reconstruir seleccionando el commit. La segunda vez, la reconstrucción se ejecutó con éxito.

1 me gusta

@martin normalmente lo que hacemos aquí es proporcionar una Configuración Global para deshabilitar el comportamiento que las personas que ejecutan clones S3 incompatibles pueden habilitar para que funcione.

En mi opinión, el comportamiento actual debería seguir siendo el predeterminado, pero proporcionar interruptores para aumentar la compatibilidad.

Ver ejemplos anteriores en DISCOURSE_S3_HTTP_CONTINUE_TIMEOUT, DISCOURSE_S3_INSTALL_CORS_RULE, etc.

3 Me gusta

Ah, lo siento, fue mi error. Estos clones de S3 siempre se me escapan. De hecho, ayer tuve que solucionar este problema del endpoint personalizado con Minio. Creo que la solución aquí puede ser simplemente no usar nunca dualstack si se ha establecido DISCOURSE_S3_ENDPOINT, ya que son incompatibles, y todo el mundo aquí parece estar usándolo.

3 Me gusta

Ya fusioné una corrección para esto:

4 Me gusta

¡Gracias por la rápida solución! He vuelto al negocio. :tada:

¡Gracias por la lúcida explicación, Rafael!

¡Eso es porque hay muchas cosas que tener en cuenta! Y las pruebas de especificación, creo, requerirían esas molestas stub_request que sé que odio escribir.

Para que lo sepas, eso me parece correcto. Y probablemente podrías escribir pruebas para eso que no requirieran stubs para stub_request.

1 me gusta

10 publicaciones se dividieron en un nuevo tema: No se puede hacer copia de seguridad ni navegar a las copias de seguridad

No creo que esto deba marcarse como fixed.

Este cambio muy probablemente ha causado un fallo en las copias de seguridad en varias instancias (y es de suponer que otros no saben que sus instancias no se están respaldando todavía).

Eso me sugiere que las especificaciones no son lo suficientemente amplias para capturar todos los casos de uso reales y que se están aprobando cambios que no deberían haberlo hecho.

4 Me gusta

Me parece que está arreglado solo para sitios que tienen use_s3 activado, pero no para aquellos que usan S3 solo para copias de seguridad.

Aunque es posible reconstruir de nuevo, simplemente las copias de seguridad de S3 están rotas. :crying_cat_face:

3 Me gusta

El problema de la copia de seguridad se soluciona aquí Unable to backup or navigate to backups - #20 by martin

3 Me gusta

Este tema se cerró automáticamente 3 días después de la última respuesta. Ya no se permiten nuevas respuestas.