Impossible de reconstruire en raison de la mise à jour de la gem AWS SDK et des nouvelles protections d'intégrité des données AWS

Bonjour, quelqu’un peut m’aider ?

I, [2025-02-24T17:35:41.516926 #1]  INFO -- : Fin des processus asynchrones
I, [2025-02-24T17:35:41.516987 #1]  INFO -- : Envoi du signal INT à HOME=/var/lib/postgresql UTILISATEUR=postgres exécuter 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) Reçu SIGTERM planifiant l'arrêt...
I, [2025-02-24T17:35:41.517067 #1]  INFO -- : Envoi du TERM à exécuter 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 : réception d'une demande d'arrêt rapide
2025-02-24 17:35:41.518 UTC [38] LOG : interruption de toutes les transactions en cours
2025-02-24 17:35:41.521 UTC [38] LOG : le travailleur de fond "logical replication launcher" (PID 52) a quitté avec le code de sortie 1
105:M 24 fév. 2025 17:35:41.523 # Utilisateur a demandé l'arrêt...
105:M 24 fév. 2025 17:35:41.523 * Sauvegarde de la dernière capture RDB avant de quitter.
2025-02-24 17:35:41.525 UTC [47] LOG : arrêt en cours
2025-02-24 17:35:41.538 UTC [47] LOG : début du point de contrôle : arrêt immédiat
2025-02-24 17:35:41.550 UTC [47] LOG : point de contrôle terminé : écrit 0 tampons (0,0 %) ; 0 fichier WAL ajouté, 0 supprimé, 0 recyclé ; écriture=0,005 s, synchronisation=0,001 s, total=0,025 s ; fichiers de synchronisation=0, plus long=0,000 s, moyen=0,000 s ; distance=0 Ko, estimation=1122 Ko
2025-02-24 17:35:41.581 UTC [38] LOG : le système de base de données est arrêté
105:M 24 fév. 2025 17:35:41.657 * La base de données enregistrée sur le disque
105:M 24 fév. 2025 17:35:41.657 # Redis est maintenant prêt à quitter, au revoir...


ÉCHEC
--------------------
Erreur d'exécution Pups::ExecError : cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:upload_assets a échoué avec le statut de sortie #<Process::Status: pid 2845 sortit 1>
Lieu de l'échec : /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exécution échouée 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"]}
L'initialisation a échoué avec le code de sortie 1
** ÉCHEC DE LA BOOTSTRAP ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il pourrait y en avoir plusieurs.
./discourse-doctor peut aider à diagnostiquer le problème.
c08b2ad74e9f1171f7677979af4e41a46be92877a0783350b2f020359895a431

L’erreur réelle s’est produite beaucoup plus tôt. Vous devriez la trouver.

1 « J'aime »
Moi, [2025-02-24T18:17:21.167441 #1]  INFO -- : crire cd /var/www/discourse  et sudo -E -u discourse bundle exec rake s3:upload_assets
rake abort!
Aws::S3::Errors::InvalidArgument: En-tête non pris en charge 'x-amz-checksum-crc32' reçu pour cet appel 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 main'
/va
```r/www/discourse/lib/tasks/s3.rake:197:in `each'
/var/www/discourse/lib/tasks/s3.rake:197:in `bloc dans 4 main'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `4op (required)'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `4 main'
Tâches : TOP => s3:upload_assets
(Voir la trace complète en exécutant la tâche avec --trace)
I, [2025-02-24T18:17:32.242989 #1]  INFO -- : Installation des règles CORS...
passant outre
Passant outre : assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js
Passant outre : assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.br.js
Passant outre : assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.gz.js
Passant outre : assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js.map
Passant outre : assets/service-worker-9312562dd27728d5fd952130f6bb72f4fd253fec8ef551a6e7c3c8ecd9b256da.js
Passant outre : assets/service-worker-9312562dd27728d5fd952130f6bb72f4fd253fec8ef551a6e7c3c8ecd9b256da.br.js
Passant outre : assets/service-worker-9312562dd27728d5fd952130f6bb72f4fd253fec8ef551a6e7c3c8ecd9b256da.gz.js
Passant outre : assets/service-worker-9312562dd27728d5fd952130f6bb72f4fd253fec8ef551a6e7c3c8ecd9b256da.js.map
Passant outre : assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js
Passant outre : assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.br.js
Passant outre : assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.gz.js
Passant outre : assets/scripts/discourse-test-listen-boot-c65930f97c9935680e942f8e32df616cc91ab7c9371b86db6e5ddf9ad868ae22.js
Passant outre : assets/scripts/discourse-test-listen-boot-c65930f97c9935680e942f8e32df616cc91ab7c9371b86db6e5ddf9ad868ae22.br.js
Passant outre : assets/scripts/disco...

Je ne sais pas, mais il semble que vos paramètres AWS soient cassés d’une manière ou d’une autre. Du moins.

@Falco Je suppose que la dernière version de Discourse ne prend plus en charge BackBlaze.

J’ai trouvé ce tweet, je ne suis pas sûr qu’il soit directement lié : https://x.com/jkostolansky/status/1880623631145030054

3 « J'aime »

Oui, je suppose que c’est le problème
Aws::S3::Errors::InvalidArgument: Unsupported header 'x-amz-checksum-crc32' received for this API call. (Aws::S3::Errors::InvalidArgument)

Y a-t-il un moyen de rétrograder manuellement le gem aws-sdk-s3 ?

Probablement un problème avec votre configuration S3 ? Clés incorrectes ? Carte de crédit expirée ?

La configuration S3 est-elle en place depuis un moment ?

avant la mise à niveau vers la dernière version, il n’y a aucun problème.

J’ai vérifié B2, je n’ai atteint aucun plafond.

x-amz-checksum-crc32 n’est pas pris en charge par b2. Je suppose que c’est la raison.

Essayez d’ajouter à votre ENV

AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED
AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED
2 « J'aime »

Bonjour, cela me donne toujours une erreur

env:
  DISCOURSE_ENABLE_CORS : true
  AWS_REQUEST_CHECKSUM_CALCULATION : WHEN_REQUIRED
  AWS_RESPONSE_CHECKSUM_VALIDATION : WHEN_REQUIRED
  
  DISCOURSE_USE_S3 : true
rake aborté !
Aws::S3::Errors::InvalidArgument : En-tête non pris en charge 'x-amz-checksum-crc32' reçu pour cet appel API. (Aws::S3::Errors::InvalidArgument)
ÉCHEC
--------------------
Pups::ExecError : cd /var/www/discourse && sudo -E -u discourse bundle exec rake s3:expire_missing_assets a échoué avec le statut #cProcess::Status : pid 2900 sortie 1e
Emplacement de l'échec : /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132 :dans `spawn'
exec é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"]}
L'amorçage a échoué avec le code de sortie 1
** ÉCHEC DE L'AMORÇAGE ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plusieurs.
./discourse-doctor peut aider à diagnostiquer le problème.
1 « J'aime »

Il est signalé que le SDK AWS ne respecte pas ces variables d’environnement pour les opérations DELETE, vous devez donc supprimer la ligne

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

pour l’instant.

3 « J'aime »

Alors, faut-il mettre à jour la section b2 de Configurer un fournisseur de stockage d’objets compatible S3 pour les téléchargements ?

1 « J'aime »

Après avoir confirmé que cela fonctionne ? Absolument.

De plus, cela affectera la plupart des fournisseurs, donc la plupart des clones devront être ajustés.

2 « J'aime »

Merci, j’essaierai pendant le temps de maintenance,
est-ce que la suppression de
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
a des effets secondaires ?

Oui, les actifs ne seront plus supprimés du compartiment.

1 « J'aime »

Donc, si je ne supprime pas les actifs manuellement, en théorie, cela s’étendra à l’infini ?

Oui, c’est exactement ce qui va se passer.

1 « J'aime »

Cela ne semble pas être un problème très critique, mais y a-t-il un moyen de le résoudre ?
Il n’y avait aucun problème dans la version précédente, n’est-ce pas ?