"Zlib::BufError: erreur de tampon" - La mise à jour de Discourse échoue

I, [2024-06-10T06:40:50.951638 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'
Nom du plugin : 'discourse-education-group-custom-fields', mais le répertoire du plugin est nommé 'discourse-group-custom-fields' 
Purge des fichiers temporaires                                     
Regroupement des ressources                                           
I, [2024-06-10T06:41:22.964825 #1211]  INFO -- : Écriture de /var/www/discourse/public/assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js
I, [2024-06-10T06:41:22.986328 #1211]  INFO -- : Écriture de /var/www/discourse/public/assets/service-worker-5ed284060464db53e2bfcd15aca57982a183382ef3e0c86921be9a2ac5ecc196.js
I, [2024-06-10T06:41:22.993446 #1211]  INFO -- : Écriture de /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js
I, [2024-06-10T06:41:22.997323 #1211]  INFO -- : Écriture de /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428dcfd680205516fe211700a71c7adb5cbcf4df2cc5.js
rake avorté !                                                                                                          
Zlib::BufError: erreur de tampon (Zlib::BufError)                                                                          
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache/file_store.rb:100:in `<'`
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache/file_store.rb:100:in `set'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache.rb:212:in `set'

...

ÉCHEC
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' a échoué avec le retour #<Process::Status: pid 1209 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'
échec de l'exécution avec les paramètres {"cd"=>"$home", "tag"=>"precompile", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'"]}
échec de l'amorçage 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 plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
1 « J'aime »

Plusieurs rapports d’une erreur similaire ont été signalés récemment :

Je ne suis pas sûr qu’une cause exacte ait été trouvée, mais l’une d’elles était censée être Animated Avatars et l’autre Subscriptions (bien que Subscriptions se reconstruise correctement pour moi).

2 « J'aime »

Je n’utilise pas ces plugins :

   2   │ discourse_plugins:
   3   │   - https://github.com/discourse/docker_manager
   4   │   - https://github.com/discourse/discourse-rss-polling
   5   │   - https://github.com/discourse/discourse-chat-integration
   6   │   - https://github.com/discourse/discourse-yearly-review
   7   │   - https://github.com/discourse/discourse-perspective-api
   8   │   - https://github.com/discourse/discourse-policy
   9   │   - https://github.com/discourse/discourse-shared-edits
  10   │   - https://github.com/discourse/discourse-akismet
  11   │   - https://github.com/discourse/discourse-solved
  12   │   - https://github.com/discourse/discourse-user-notes
  13   │   - https://github.com/discourse/discourse-templates
  14   │   - https://github.com/discourse/discourse-assign
  15   │   - https://github.com/discourse/discourse-docs
  16   │   - https://github.com/discourse/discourse-encrypt
  17   │   - https://github.com/discourse/discourse-cakeday
  18   │   - https://github.com/discourse/discourse-calendar
  19 _ │   - https://github.com/discourse/discourse-data-explorer
  20   │   - https://github.com/kees-closed/discourse-group-custom-fields
  21   │   - https://github.com/discourse/discourse-activity-pub

J’utilise MaxMind, donc c’est peut-être le problème. J’ai également commenté le plugin non-Discourse. Cela n’a pas résolu le problème, donc je ne pense pas que ce soit dû à un plugin non officiel.

J’ai également redémarré l’hôte du conteneur, sans effet sur le résultat de la compilation. Dans le passé, un problème de réseau a été résolu par un redémarrage.

Avez-vous essayé de reconstruire sans lui ?

Ma meilleure explication pour le moment est une erreur fantôme avec Maxmind. Mais en regardant à nouveau certaines des erreurs, cela n’a pas de sens non plus.

J’ai rencontré ce problème lors de la mise à jour d’une installation Discourse…

Je pense que la cause est que lorsque DISCOURSE_MAXMIND_LICENSE_KEY est spécifié dans le fichier conteneur .yml sans DISCOURSE_MAXMIND_ACCOUNT_ID correspondant.

La pull request de @tgxworld ajoute l’utilisation de DISCOURSE_MAXMIND_ACCOUNT_ID à plusieurs endroits et explique la nécessité de « l’ID de compte » :

Pour moi, la solution a été d’ajouter DISCOURSE_MAXMIND_ACCOUNT_ID et de reconstruire (j’ai reconstruit deux fois, mais c’était très probablement un problème temporaire).

7 « J'aime »

Une reconstruction récente a bien fonctionné. Si cela échoue à nouveau, j’examinerai la suggestion de @DeanMarkTaylor. Merci à tous !

Pour information, je viens de rencontrer l’erreur de reconstruction Zlib::BufError: buffer error (Zlib::BufError) et l’ajout de DISCOURSE_MAXMIND_ACCOUNT_ID et la reconstruction se sont déroulés du premier coup pour moi. :+1:

4 « J'aime »

Pareil ici. L’ajout de l’ID du compte et la reconstruction fonctionnent à nouveau. :slight_smile:

1 « J'aime »

Lorsque la version 3.3.0.beta3 est sortie, j’ai rencontré cette erreur de manière inconsistante ; elle a échoué une fois, puis la reconstruction a réussi. (Ne trouvant pas ce post, j’ai craint une corruption de mémoire ! :grimacing:) Ce soir, en effectuant une reconstruction, elle a échoué de manière constante jusqu’à ce que je trouve ce post et que j’ajoute DISCOURSE_MAXMIND_ACCOUNT_ID à DISCOURSE_MAXMIND_LICENSE_KEY existant, et ensuite elle a réussi de manière fiable.

(Je suppose que quelque chose comme ça, MaxMind a déployé un changement avec un déploiement bleu/vert et qu’auparavant, j’ai touché différentes versions d’un service backend à chaque fois…)

La reconstruction vient d’échouer à cause des lignes MaxMind. Cela fonctionnait jusqu’à présent, et sans aucun changement dans app.yml, cela a échoué maintenant. Donc quelque chose de plus gros est cassé.

Quoi qu’il en soit, je n’en ai pas besoin sous Discourse, donc je laisse cela commenté. Mais il est tout à fait certain que le problème est autre chose que le simple account_id.

D’accord. Ma reconstruction a échoué même avec DISCOURSE_MAXMIND_ACCOUNT_ID défini dans app.yml.

Dès que j’ai commenté toute mention de Maxmind, la reconstruction a réussi.

2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.