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.

1 me gusta
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

3 Me gusta

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
2 Me gusta

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.
1 me gusta

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.

3 Me gusta

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

1 me gusta

¿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.

2 Me gusta

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.

1 me gusta

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

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

1 me gusta

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?