No se puede reconstruir debido al aumento de la gema SDK de AWS y las nuevas protecciones de integridad de datos de AWS

Hola, ¿Alguien puede ayudarme?

I, [2025-02-24T17:35:41.516926 #1]  INFO -- : Terminando procesos asíncronos
I, [2025-02-24T17:35:41.516987 #1]  INFO -- : Enviando INT a HOME=/var/lib/postgresql USER=postgres ejecutando chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main pid: 38
105:signal-handler (1740418541) Recibido SIGTERM planificando apagado...
I, [2025-02-24T17:35:41.517067 #1]  INFO -- : Enviando TERM a ejecutar chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 105
2025-02-24 17:35:41.517 UTC [38] LOG:  solicitud de apagado rápido recibida
2025-02-24 17:35:41.518 UTC [38] LOG:  abortando cualquier transacción activa
2025-02-24 17:35:41.521 UTC [38] LOG:  trabajador en segundo plano "logical replication launcher" (PID 52) salió con código de salida 1
105:M 24 Feb 2025 17:35:41.523 # El usuario solicitó apagado...
105:M 24 Feb 2025 17:35:41.523 * Guardando la última instantánea RDB antes de salir.
2025-02-24 17:35:41.525 UTC [47] LOG:  apagando
2025-02-24 17:35:41.538 UTC [47] LOG:  inicio de checkpoint: apagado inmediato
2025-02-24 17:35:41.550 UTC [47] LOG:  checkpoint completo: escribió 0 buffers (0.0%); 0 archivo WAL añadido, 0 eliminado, 0 reciclado; tiempo de escritura=0.005 s, sincronización=0.001 s, total=0.025 s; archivos sincronizados=0, más largo=0.000 s, promedio=0.000 s; distancia=0 kB, estimado=1122 kB
2025-02-24 17:35:41.581 UTC [38] LOG:  sistema de base de datos apagado
105:M 24 Feb 2025 17:35:41.657 * Base de datos guardada en disco
105:M 24 Feb 2025 17:35:41.657 # Redis ahora está listo para salir, adiós...


FALLÓ
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:upload_assets falló con el código de retorno #<Process::Status: pid 2845 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:en `spawn'
la ejecución 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"]}
la bootstrap falló con código de salida 1
** FALLO AL INICIAR ** por favor desplácese hacia arriba y busque mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
c08b2ad74e9f1171f7677979af4e41a46be92877a0783350b2f020359895a431

El error real ocurrió mucho antes. Deberías encontrarlo.

Yo, [2025-02-24T18:17:21.167441 #1]  INFO -- : a cd /var/www/discourse a && sudo -E -u discourse bundle exec rake s3:upload_assets
rake abort!
Aws::S3::Errors::InvalidArgument: Se recibió un encabezado no compatible 'x-amz-checksum-crc32' para esta llamada a la API. (Aws::S3::Errors::InvalidArgument)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/raise_response_errors.rb:17: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/dualstack.rb:21: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/accelerate.rb:43: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/checksum_algorithm.rb:169: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:16: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/invocation_id.rb:16: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/param_converter.rb:26: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/request_callback.rb:89: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/response_paging.rb:12: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/response_target.rb:24: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:39: in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/telemetry/no_op.rb:29: in `in_span'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:53: in `span_wrapper'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:39: in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/request.rb:72: in `send_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/client.rb:17315: in `put_object'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:2994: in `block in put'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/user_agent.rb:69: in `metric'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/object.rb:2993: in `put'
/var/www/discourse/lib/s3_helper.rb:82: in `upload'
/var/www/discourse/lib/tasks/s3.rake:41: in `block in upload'
/var/www/discourse/lib/tasks/s3.rake:41: in `open'
/var/www/discourse/lib/tasks/s3.rake:41: in `upload'
/var/www/discourse/lib/tasks/s3.rake:197: in `block (2 levels) in a'
/var/www/discourse/lib/tasks/s3.rake:197: en `each`
/var/www/discourse/lib/tasks/s3.rake:197: en `bloque en <main>`
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27: en `top (required)`
/usr/local/bin/bundle:25: en `cargar`
/usr/local/bin/bundle:25: en `main`
Tareas: TOP => s3:upload_assets
(Ver traza completa ejecutando la tarea con --trace)
I, [2025-02-24T18:17:32.242989 #1]  INFO -- : Instalando reglas de CORS...
esquiando
Saltando: assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js
Saltando: assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.br.js
Saltando: assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.gz.js
Saltando: assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js.map
Saltando: assets/service-worker-9312562dd27728d5fd952130f6bb72f4fd253fec8ef551a6e7c3c8ecd9b256da.js
Saltando: assets/service-worker-9312562dd27728d5fd952130f6bb72f4fd253fec8ef551a6e7c3c8ecd9b256da.br.js
Saltando: assets/service-worker-9312562dd27728d5fd952130f6bb72f4fd253fec8ef551a6e7c3c8ecd9b256da.gz.js
Saltando: assets/service-worker-9312562dd27728d5fd952130f6bb72f4fd253fec8ef551a6e7c3c8ecd9b256da.js.map
Saltando: assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js
Saltando: assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.br.js
Saltando: assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.gz.js
Saltando: assets/scripts/discourse-test-listen-boot-c65930f97c9935680e942f8e32df616cc91ab7c9371b86db6e5ddf9ad868ae22.js
Saltando: assets/scripts/discourse-test-listen-boot-c65930f97c9935680e942f8e32df616cc91ab7c9371b86db6e5ddf9ad868ae22.br.js
Saltando: assets/scripts/disco...

No sé, pero tus configuraciones de AWS parecen estar rotas de alguna manera. Al menos.

@Falco Supongo que la versión más reciente de Discourse ya no admite BackBlaze.

Encontré este tuit, no estoy seguro si está directamente relacionado: https://x.com/jkostolansky/status/1880623631145030054

Sí, supongo que ese es el problema
Aws::S3::Errors::InvalidArgument: Error en la llamada a la API: se recibió una cabecera no admitida 'x-amz-checksum-crc32'. (Aws::S3::Errors::InvalidArgument)

¿Hay alguna forma de degradar manualmente el gem aws-sdk-s3?

¿Probablemente algo con tu configuración de S3? ¿Claves incorrectas? ¿Tarjeta de crédito caducada?

¿Has tenido S3 configurado durante un tiempo?

antes de actualizar a la versión más reciente no hay ningún problema.

Comprobé B2 que no cumplí ningún límite.

x-amz-checksum-crc32 no es compatible con b2. Supongo que esta es la razón.

Intenta agregar a tu ENV

AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED
AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED

Hola, todavía me da error

env:
  DISCOURSE_ENABLE_CORS: true
  AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED
  AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED
  
  DISCOURSE_USE_S3: true
rake aborted!
Aws::S3::Errors::InvalidArgument: Se recibió un encabezado no compatible 'x-amz-checksum-crc32' para esta llamada a la API. (Aws::S3::Errors::InvalidArgument)
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:expire_missing_assets failed with return #<Process::Status: pid 2900 exit 1>
Ubicación de la falla: /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"]}
La falla en el arranque ocurrió con código de salida 1
** FALLO AL INICIALIZAR ** por favor desplaza hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

Se informa que el SDK de AWS no respeta esas variables de entorno para las operaciones DELETE, por lo que necesita eliminar la línea

- sudo -E -u discourse bundle exec rake s3:expire_missing_assets

por ahora.

¿Debería alguien actualizar la sección b2 de Configurar un proveedor de almacenamiento de objetos compatible con S3 para cargas?

¿Después de confirmar que funciona? Definitivamente.

Además, afectará a la mayoría de los proveedores, por lo que la mayoría de los clones necesitarán ajustes.

Gracias, lo intentaré en el tiempo de mantenimiento.
¿Borrar
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
tiene algún efecto secundario?

Sí, los activos ya no se eliminarán del bucket.

Entonces, si no elimino los activos manualmente, ¿en teoría, se expandirá infinitamente?

Sí, eso es exactamente lo que va a suceder.

No parece ser un problema súper crítico, pero ¿hay alguna forma de solucionarlo?
No hubo ningún problema en la versión anterior, ¿verdad?