فشل التهيئة بسبب قاتل نفاد الذاكرة

قد يكون من الجيد وضعه خلف ميزة مؤقتة (feature flag) بعد ذلك، حتى نتمكن من تطويره داخليًا.

3 إعجابات

حسناً، تم التراجع عنها والالتزام موجود الآن في tests-passed:

شكرًا لإخبارنا ونعتذر عن الإزعاج.

7 إعجابات

سأكون مهتمًا لمعرفة ما إذا كان هذا الإلغاء قد حل أيضًا مشكلة صاحب الموضوع الأصلي (OP). فقد أبلغ صاحب الموضوع الأصلي (@devnull) عن رؤية

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

وهو ما لم يبلغ عنه @pfaffman.

كما أود التعليق على ما يلي:

قد تؤدي إضافة ذاكرة وصول عشوائي (RAM) أحيانًا إلى تحسين الأداء، ولكن فيما يتعلق بنفاد الذاكرة فعليًا، فإن ما يحسب هو مجموع الذاكرة العشوائية والذاكرة المؤقتة (RAM+swap). فإذا لم تساعد إضافة الذاكرة المؤقتة في حالة نفاد الذاكرة، فلن تساعد إضافة ذاكرة الوصول العشوائي أيضًا.

وبما أن @weallwegot يبلغ عن استمرار الفشل حتى بعد إضافة 4 جيجابايت من الذاكرة المؤقتة، فإن هناك شيئًا (أو كان) جائعًا للغاية.

إعجابَين (2)

إنه نفس الخطأ. يُظهر قراءة تتبع المكالمة إشارة إلى نفاد الذاكرة (OOM) في السطر الرابع.

3 إعجابات

كل ذلك صحيح. يمتلك ذاكرة وصول عشوائي أقل من 1 جيجابايت، وهو مقدار غير كافٍ. لذا، حتى لو لم يكن يعاني من هذه المشكلة، سأوصي لا يزال بإضافة المزيد من ذاكرة الوصول العشوائي. وبالنسبة لذلك، فإنني أوصي في الغالب أي شخص يمتلك ذاكرة وصول عشوائي أقل من 2 جيجابايت بزيادة ذاكرته العشوائية.

إعجاب واحد (1)

تم حل المشكلة بالنسبة لي. يعمل إعادة بناء التطبيق. شكرًا جزيلاً على جهدك!

3 إعجابات

(بالتأكيد، أفهم النصيحة، لكن المنطق بدا وكأنه قد يكون مضللاً.)

إعجابَين (2)

بالمناسبة، تمكّنت من إعادة البناء باستخدام كلا الإضافتين دون أي مشكلة. رغم أنني الآن لدي 6 جيجابايت من مساحة الذاكرة المؤقتة (swap)، لذا فالمقارنة ليست دقيقة تمامًا، ههه.

4 إعجابات

شكرًا لك! لقد عدت إلى العمل بنجاح.

6 إعجابات

معلومًا، لقد دمجتُ هذا التغيير مجددًا، ولكن هذه المرة لا ينبغي أن يُعطّل Bootstrap. يُرجى إعلامي إذا تسبّب ذلك في أي مشاكل.

إعجابَين (2)

لقد واجهت للتو نفس نوع الفشل في التمهيد الذي وصفه @pfaffman… خطأ في التحليل في theme_test_helper. أبلغني إذا كنت بحاجة إلى مزيد من المعلومات.

إعجاب واحد (1)

هل يمكنك نسخ ولصق الخطأ هنا من فضلك؟ أيضًا، أسطر الإخراج المحيطة بضغط theme_test_helper و theme_test_vendor، يجب أن تبدو هكذا:

12825804.271282336 Compressing: discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js
gzip -f -c -9 /var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js > /var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js.gz

brotli -f --quality=11 /var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js --output=/var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js.br
Done compressing discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js : 6.85 secs
6061451.556507351 جاري الضغط: discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js
uglifyjs '/var/www/discourse/public/assets/discourse/tests/_theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js' -m -c -o '/var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js' --source-map "base='/var/www/discourse/public/assets/discourse/tests',root='/assets/discourse/tests',url='/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js.map'"
خطأ في التحليل في _theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js:27883,17
define("sinon", () => {
                 ^
خطأ: رمز غير متوقع: «)»
    at JS_Parse_Error.get (eval at <anonymous> (/usr/lib/node_modules/uglify-js/tools/node.js:18:1), <anonymous>:71:23)
    at fatal (/usr/lib/node_modules/uglify-js/bin/uglifyjs:409:27)
    at run (/usr/lib/node_modules/uglify-js/bin/uglifyjs:347:9)
    at Object.<anonymous> (/usr/lib/node_modules/uglify-js/bin/uglifyjs:261:5)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
rake aborted!
Errno::ENOENT: لا يوجد ملف أو دليل @ rb_file_s_size - /var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js
/var/www/discourse/lib/tasks/assets.rake:290:in `size'
/var/www/discourse/lib/tasks/assets.rake:290:in `block (4 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:181:in `block in concurrent?'
/var/www/discourse/lib/tasks/assets.rake:281:in `block (3 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:272:in `each'
/var/www/discourse/lib/tasks/assets.rake:272:in `block (2 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:181:in `concurrent?'
/var/www/discourse/lib/tasks/assets.rake:269:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
المهام: TOP => assets:precompile
(انظر التتبع الكامل بتشغيل المهمة مع --trace)

وبالطبع بعد الانتهاء من تشغيل الإضافات الأخرى ومكونات السمات وما إلى ذلك:

فشل
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' فشل مع إرجاع #<Process::Status: pid 5128 exit 1>
موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'
فشل التنفيذ مع المعاملات {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
29b7ee9f8297bdac0cc17dae6117ebe5aa94dcdf3f5dbfed4bf03b0bd7751cc0
** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الأخطاء السابقة، فقد يكون هناك أكثر من خطأ.
قد يساعد ./discourse-doctor في تشخيص المشكلة.
4 إعجابات

هل يمكنك إدخال الحاوية والتحقق من إصدار uglifyjs؟

./launcher enter app
uglifyjs --version

وكذلك discourse_docker على جهازك المضيف:

git rev-parse HEAD
5 إعجابات

@أسامة @داوني،

لقد قمنا بتحديث صورة القاعدة قبل بضع ساعات، ونفرض الآن استخدام صورة قاعدة جديدة حتى نتمكن من تجميع جافا سكريبت من عام 2015 بشكل صحيح. هل يمكنك الرجاء تنفيذ أمر git pull ثم إعادة البناء، @داوني؟ يجب أن يستخدم الآن terser بدلاً من uglify.

cc @pmusaraj

6 إعجابات

شكرًا لكم جميعًا. كنت غائبًا لبضع ساعات من المساء بسبب التزامات عائلية، لكنني فوجئت بشكل سار برؤية هذا التحديث.

أخبار جيدة: قمت بتشغيل git pull وأعدت البناء، وبدا أن كل شيء يعمل بشكل صحيح. (على الرغم من أنني تلقيت إشعارًا بوجود أقل من 5 جيجابايت متاحة، لذا كان عليّ تنظيف بعض صور Docker القديمة والمحاولة مرة أخرى.)

لكن كل شيء على ما يرام الآن، حسب ما أستطيع ملاحظته. :tada:

أخبروني إذا كنتم بحاجة إلى أي معلومات إضافية من جهتي.

8 إعجابات