لا يمكن البناء على ARM، خطأ Zlib::BufError أثناء تنفيذ assets:precompile

على خادم Hetzner CAX21 VPS بوحدة معالجة مركزية aarch64، عند تشغيل ./launcher rebuild web.yml، توقف مع الخطأ التالي: يرجى المساعدة.

I, [2024-05-24T14:07:05.408434 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30: warning: /usr/local/lib/ruby/3.3.0/observer.rb was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add observer to your Gemfile or gemspec. Also contact author of rmagick-4.2.2 to add observer into its gemspec.
Purging temp files
Bundling assets
I, [2024-05-24T14:07:12.220787 #2680]  INFO -- : Writing /var/www/discourse/public/assets/break_string-cc617154cd957804f2f6a1f3bc68258c9cdca3d4b9a322bf777d145fed04790e.js
I, [2024-05-24T14:07:12.229550 #2680]  INFO -- : Writing /var/www/discourse/public/assets/service-worker-f149bdcc45f1996961aa7d1e44bbaaa67fbfc013f6976595afe544acfe5664dc.js
I, [2024-05-24T14:07:12.248203 #2680]  INFO -- : Writing /var/www/discourse/public/assets/locales/i18n-3b40e842fd72b9bcc74ea83e094c823cd9ca535e4ecc5e78722e6f99d3656137.js
I, [2024-05-24T14:07:12.253509 #2680]  INFO -- : Writing /var/www/discourse/public/assets/scripts/discourse-test-listen-boot-9b14a0fc65c689577e6a428dcfd680205516fe211700a71c7adb5cbcf4df2cc5.js
I, [2024-05-24T14:07:13.226151 #2680]  INFO -- : Writing /var/www/discourse/public/assets/locales/ar-6e08f3f970e658a14b18a835d3c1fb286846ea94e333ac46242e166eff29dd22.js
I, [2024-05-24T14:07:13.682780 #2680]  INFO -- : Writing /var/www/discourse/public/assets/locales/be-762dabfdc99a559d5cf6fb691049fb50a71fa828e3dd48818a94dc62dc988f71.js
I, [2024-05-24T14:07:14.148990 #2680]  INFO -- : Writing /var/www/discourse/public/assets/locales/bg-28b8fd14f6bcc195da7401a451a222ccc958e1b285df4bb7e95d65f356bad2ec.js
I, [2024-05-24T14:07:14.431154 #2680]  INFO -- : Writing /var/www/discourse/public/assets/locales/bs_BA-34f2fe1480f5a9c77ddf0dfb26ad4751e793ce56b1cc48e9ad6e9867c5e08094.js
rake aborted!
Zlib::BufError: buffer error (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'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cache.rb:136:in `set'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:243:in `store_asset'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:185:in `load_from_unloaded'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:60:in `block in load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cached_environment.rb:47:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/bundle.rb:23:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/utils.rb:201:in `dfs'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/bundle.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/processor_utils.rb:75:in `call_processor'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/processor_utils.rb:56:in `call_processors'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:60:in `block in load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/loader.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/cached_environment.rb:47:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/base.rb:66:in `find_asset'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/base.rb:73:in `find_all_linked_assets'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:134:in `block in find'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:133:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:133:in `find'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/sprockets/manifest.rb:186:in `compile'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:67:in `block (3 levels) in define'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-3.7.3/lib/rake/sprocketstask.rb:147:in `with_logger'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:66:in `block (2 levels) in define'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
I, [2024-05-24T14:07:14.967828 #1]  INFO -- : Downloading MaxMindDB...


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 2678 exit 1>
Location of failure: /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", "tag"=>"precompile", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'SKIP_EMBER_CLI_COMPILE=1 bundle exec rake themes:update assets:precompile'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
26e64935c29000e8c019ed676034a16e2d988ec28a2cd9164e142ee83c086ded
root@ubuntu-8gb-nbg1-1:/var/discourse#  

بعد التعليق على بعض الإضافات، يمكنني إعادة البناء مرة أخرى. سأحدد أي إضافة تسبب هذه المشكلة.

أخيرًا، اتضح أن الإضافة https://github.com/discourse/discourse-animated-avatars والبرنامج النصي المصاحب لها هما سبب المشكلة، حيث يؤدي التعليق على سطر استنساخ الإضافة و

- exec:
    cd: $home/plugins/discourse-animated-avatars
    raise_on_fail: false
    cmd:
      - $home/plugins/discourse-animated-avatars/scripts/install.sh

… إلى العمل.

3 إعجابات

لدي نفس المشكلة وعندما أقوم بإيقاف تشغيل جزء التنفيذ من discourse-animated-avatars، يعمل إعادة البناء.

ربط تقرير مشابه حديث https://meta.discourse.org/t/rebuild-fails-when-these-plugins-are-present/310455/5، على الرغم من عدم وجود صور رمزية متحركة لذلك. كانت الأفكار الأولية هي الاشتراكات.

اتضح أنه عند إزالة التعليقات الخاصة بجزء install.sh وإعادة البناء مرة ثانية بعد أن كان يعمل في المرة الأولى بدون جزء install.sh، فإنه يتم بناؤه أيضًا معه. غريب…

لا أعتقد أنها كانت الاشتراكات. لقد قمت بإزالة الاشتراكات ولا يزال يعمل. ثم قمت بالتعليق على مفتاح ومعرف Maxmind وعمل. لذا يبدو لي أن هناك شيئًا لا يزال معطلاً في Maxmind. لا معنى له أن تتسبب مشكلة في Maxmind في فشل البناء بأكمله. سأحاول القيام بالمزيد من العمل لمعرفة المشكلة، ولكن فقط جعل الخطأ في Maxmind ليس مشكلة كبيرة.

تخميني العشوائي في هذه المرحلة هو أنه يمكنك الحصول على أخطاء زائفة مثل مشكلة في الشبكة، أو أن خوادمهم محملة بشكل زائد، أو تحديد المعدل، أو أي شيء آخر ويرسل ذلك مرة أخرى قمامة لا يتم فك ضغطها (لأنها ليست ملف مضغوط).

تمت إعادة صياغة كود Maxmind هذا للتو لزوج المعرف/المفتاح. أنا خائب الأمل لأن خطأ “Maxmind يتسبب في فشل البناء” هذا تم الحفاظ عليه. (أو هكذا يبدو).

3 إعجابات