«Zlib::BufError: error de búfer» - La actualización de Discourse falla

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'
El nombre del plugin es 'discourse-education-group-custom-fields', pero el directorio del plugin se llama 'discourse-group-custom-fields' 
Purgando archivos temporales                                     
Empaquetando activos                                           
I, [2024-06-10T06:41:22.964825 #1211]  INFO -- : Escribiendo /var/www/discourse/public/assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js
I, [2024-06-10T06:41:22.986328 #1211]  INFO -- : Escribiendo /var/www/discourse/public/assets/service-worker-5ed284060464db53e2bfcd15aca57982a183382ef3e0c86921be9a2ac5ecc196.js
I, [2024-06-10T06:41:22.993446 #1211]  INFO -- : Escribiendo /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js
I, [2024-06-10T06:41:22.997323 #1211]  INFO -- : Escribiendo /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428dcfd680205516fe211700a71c7adb5cbcf4df2cc5.js
rake aborted!                                                                                                          
Zlib::BufError: error de búfer (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'

...

FALLIDO
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' falló con retorno #<Process::Status: pid 1209 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", "tag"=>"precompile", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'"]}
falló el arranque con el código de salida 1
** FALLÓ EL ARRANQUE ** 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.
1 me gusta

Ha habido un par de informes de un error similar recientemente:

No estoy seguro de si se ha encontrado una causa exacta, pero se pensó que una era Animated Avatars y la otra Subscriptions (aunque Subscriptions se ha estado reconstruyendo bien para mí).

2 Me gusta

No uso esos complementos:

   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

Sí uso MaxMind, así que tal vez ese sea el problema. También comenté el complemento que no es de Discourse. Eso no resolvió el problema, así que no creo que se deba a un complemento no oficial.

También reinicié el host del contenedor, sin efecto en el resultado de la compilación. En el pasado, un problema de red se resolvió con un reinicio.

¿Intentaste reconstruir sin él?

Mi mejor explicación para esto en este momento es algún error espurio con Maxmind. Pero al mirar de nuevo algunos de los errores, eso tampoco tiene sentido.

He tenido este problema al actualizar una instalación de Discourse…

Creo que la causa es porque DISCOURSE_MAXMIND_LICENSE_KEY se especifica en el archivo contenedor .yml sin un DISCOURSE_MAXMIND_ACCOUNT_ID correspondiente.

La solicitud de extracción de @tgxworld añade el uso de DISCOURSE_MAXMIND_ACCOUNT_ID en varios lugares y explica la necesidad del “ID de cuenta”:

Para mí, la solución fue añadir DISCOURSE_MAXMIND_ACCOUNT_ID y reconstruir (reconstruí dos veces, pero esto fue muy probablemente un problema temporal).

7 Me gusta

Una reconstrucción reciente funcionó bien. Si vuelve a fallar, echaré un vistazo a la sugerencia de @DeanMarkTaylor. ¡Gracias a todos!

Por cierto, acabo de encontrar el error de reconstrucción Zlib::BufError: buffer error (Zlib::BufError) y añadir DISCOURSE_MAXMIND_ACCOUNT_ID y reconstruir funcionó a la primera para mí. :+1:

4 Me gusta

A mí también. Añadir el ID de la cuenta y reconstruir vuelve a funcionar. :slight_smile:

1 me gusta

Cuando se lanzó la versión 3.3.0.beta3, recibí este error de forma inconsistente; falló una vez y luego la reconstrucción tuvo éxito. (¡Al no haber encontrado esta publicación, me preocupé por la corrupción de memoria! :grimacing:) Esta noche, al hacer una reconstrucción, falló consistentemente hasta que encontré esta publicación y agregué DISCOURSE_MAXMIND_ACCOUNT_ID a la DISCOURSE_MAXMIND_LICENSE_KEY existente, y luego tuvo éxito de manera confiable.

(Supongo que algo como eso, MaxMind implementó un cambio con un despliegue azul/verde y que anteriormente golpeé diferentes versiones de un servicio de backend cada vez…)

La reconstrucción acaba de fallar debido a las líneas de MaxMind. Funcionó hasta ahora, y sin ningún cambio en app.yml, falló ahora. Así que algo más grande está roto.

De todos modos, no lo necesito en Discourse, así que lo dejaré comentado. Pero es totalmente seguro que el problema es algo más que solo account_id.

De acuerdo. Mi reconstrucción falló incluso con DISCOURSE_MAXMIND_ACCOUNT_ID establecido en app.yml.

Tan pronto como comenté toda mención de Maxmind, la reconstrucción tuvo éxito.

2 Me gusta

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