لقد حاولت ترقية Discourse، لكنني تلقيت هذه الرسالة:
عذرًا، حدث خطأ أثناء ترقية Discourse. يرجى التحقق من السجلات أدناه.
********************************************************
*** يرجى التحلي بالصبر، قد تستغرق الخطوات التالية بعض الوقت ***
********************************************************
إعادة تشغيل Unicorn لتحرير الذاكرة
إعادة تشغيل unicorn pid: 663
بانتظار إعادة تحميل Unicorn.
بانتظار إعادة تحميل Unicorn..
بانتظار إعادة تحميل Unicorn...
بانتظار إعادة تحميل Unicorn....
استخدام oj 3.10.15
استخدام optimist 3.0.1
استخدام pg 1.2.3
استخدام r2 0.2.7
استخدام raindrops 0.19.1
استخدام rchardet 1.8.0
استخدام rinku 2.0.6
استخدام rotp 6.2.0
استخدام rqrcode_core 0.1.2
استخدام rtlit 0.0.5
استخدام rubyzip 2.3.0
استخدام tilt 2.0.10
استخدام sshkey 2.0.0
استخدام stackprof 0.2.16
استخدام unf_ext 0.0.7.7
استخدام xorcist 1.1.2
استخدام i18n 1.8.5
استخدام tzinfo 1.2.7
استخدام nokogiri 1.10.10
استخدام rack-test 1.1.0
استخدام mail 2.7.1
استخدام addressable 2.7.0
استخدام aws-sigv4 1.2.0
استخدام barber 0.12.2
استخدام cose 1.2.0
استخدام ember-data-source 3.0.2
استخدام sprockets 3.7.2
استخدام discourse_image_optim 0.26.2
استخدام faraday 1.1.0
استخدام request_store 1.5.0
استخدام message_bus 3.3.4
استخدام pry 0.13.1
استخدام rack-mini-profiler 2.2.0
استخدام rack-protection 2.1.0
استخدام uglifier 4.2.0
استخدام logstash-logger 0.26.1
استخدام mini_racer 0.3.1
استخدام sidekiq 6.1.2
استخدام mini_suffix 0.3.0
استخدام nokogumbo 2.0.2
استخدام omniauth 1.9.1
استخدام puma 5.0.4
استخدام rbtrace 0.4.14
استخدام redis-namespace 1.8.0
استخدام rqrcode 1.1.2
استخدام ruby-readability 0.7.0
استخدام sassc 2.0.1
استخدام unf 0.1.4
استخدام unicorn 5.7.0
استخدام webpush 1.0.0
استخدام activesupport 6.0.3.3
استخدام loofah 2.7.0
جلب bootsnap 1.5.0
استخدام ember-handlebars-template 0.8.0
استخدام mini_scheduler 0.12.3
استخدام oauth2 1.4.4
استخدام omniauth-oauth 1.1.0
استخدام sanitize 5.2.1
استخدام pry-byebug 3.9.0
استخدام pry-rails 0.3.9
استخدام rails-dom-testing 2.0.3
استخدام rails-html-sanitizer 1.3.0
استخدام globalid 0.4.2
استخدام activemodel 6.0.3.3
استخدام aws-sdk-core 3.99.1
استخدام css_parser 1.7.1
استخدام actionview 6.0.3.3
استخدام activejob 6.0.3.3
استخدام active_model_serializers 0.8.4
استخدام activerecord 6.0.3.3
استخدام aws-sdk-kms 1.31.0
استخدام aws-sdk-sns 1.25.1
استخدام omniauth-oauth2 1.7.0
استخدام omniauth-twitter 1.4.0
استخدام onebox 2.1.4
استخدام actionpack 6.0.3.3
استخدام actionview_precompiler 0.2.3
استخدام aws-sdk-s3 1.66.0
استخدام omniauth-facebook 8.0.0
استخدام omniauth-github 1.4.0
استخدام omniauth-google-oauth2 0.8.0
استخدام seed-fu 2.3.9
استخدام actionmailer 6.0.3.3
استخدام railties 6.0.3.3
استخدام sprockets-rails 3.2.2
استخدام jquery-rails 4.4.0
استخدام lograge 0.11.2
استخدام rails_failover 0.5.7
استخدام rails_multisite 2.5.0
استخدام sassc-rails 2.1.2
استخدام discourse-ember-rails 0.18.6
تثبيت bootsnap 1.5.0 مع امتدادات أصلية
تم إكمال الحزمة! 123 اعتمادًا في Gemfile، و161 gem تم تثبيتها الآن.
لم يتم تثبيت الـ Gems الموجودة في مجموعات test و development.
تم تثبيت الـ Gems المعبأة داخل `./vendor/bundle`
$ bundle exec rake plugin:pull_compatible_all
docker_manager موجود بالفعل في أحدث إصدار متوافق
discourse-data-explorer موجود بالفعل في أحدث إصدار متوافق
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
يعمل مهاجر Multisite باستخدام 1 خيط
هجارة الموقع الافتراضي
== 20201027110546 CreateLinkedTopics: جاري الهجرة ===============================
-- create_table(:linked_topics)
-> 0.0524s
-- add_index(:linked_topics, [:topic_id, :original_topic_id], {:unique=>true})
-> 0.0066s
-- add_index(:linked_topics, [:topic_id, :sequence], {:unique=>true})
-> 0.0045s
== 20201027110546 CreateLinkedTopics: تم الهجرة (0.0676s) ======================
تهيئة الموقع الافتراضي
[...]
تم ضغط locales/ko-0c530732e52b234cd31ea1959ec4b5127cfcc2cb5b076d4999abfa0530e5bba5.js بنجاح : 0.11 ثانية
8625116.65540771 جاري الضغط: application-1e74fe54a11795d2a94b9b90ac1f18294214d956e95b882737a05319d5d11ff9.js
uglifyjs '/var/www/discourse/public/assets/_application-1e74fe54a11795d2a94b9b90ac1f18294214d956e95b882737a05319d5d11ff9.js' -m -c -o '/var/www/discourse/public/assets/application-1e74fe54a11795d2a94b9b90ac1f18294214d956e95b882737a05319d5d11ff9.js' --source-map "base='/var/www/discourse/public/assets',root='/assets',url='/assets/application-1e74fe54a11795d2a94b9b90ac1f18294214d956e95b882737a05319d5d11ff9.js.map'"
تم القتل (Killed)
Docker Manager: فشل في الترقية
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:178:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:86:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/commands/runner/runner_command.rb:42:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/command/base.rb:69:in `perform'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/command.rb:46:in `invoke'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.3/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.9/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `block in require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:291:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.3/lib/active_support/dependencies.rb:324:in `require'
bin/rails:17:in `<main>'
بدء تشغيل 1 عامل Unicorn كان متوقفًا في البداية
هل يحتوي جهازك على ذاكرة عشوائية (RAM) ومساحة تبديل (swap) كافيتين؟ يمكن لأوامر free أو top إخبارك بذلك. كما يمكنك تجربة الأمر dmesg | egrep -3i kill
لمعرفة ما إذا كانت هناك معلومات حول عملية تم إنهاؤها. أشك في أن السبب هو نفاد الذاكرة (قتال OOM).
Well, oddly enough, my upgrade just failed the same way! I had successfully updated docker manager and data explorer, and got the ‘killed’ failure at the same step, running uglifyjs on the same file.
I have a Digital Ocean droplet with 1G RAM and 2G swap, and a relatively small forum (a backup is 700MByte)
على الرغم من توقف الخدمة لفترة قصيرة، تمكنت من إتمام الترقية بتطبيق الحل البديل المعتاد:
./launcher rebuild app
ومع ذلك، وبما أن 1 جيجابايت من ذاكرة الوصول العشوائي (RAM) + 2 جيجابايت من مساحة التبديل (swap) يُعد الحد الأدنى الموصى به لتكوين منتدى صغير، فإن الأمر يبدو وكأن هناك خطأ ما.
أثناء إعادة البناء، لم يكن استخدام الذاكرة الافتراضية سيئًا للغاية - كانت النقطة المنخفضة، خلال عملية uglifyjs نفسها، كالتالي:
# free
total used free shared buff/cache available
Mem: 1009264 380204 537900 5712 91160 510756
Swap: 2097144 498540 1598604
يرجى ملاحظة أن هذا الأمر قد يكون مرتبطًا بالتغييرات في مدير Docker التي تهدف إلى الحفاظ على تشغيل الموقع بشكل أفضل أثناء الترقية، مما قد يؤدي إلى زيادة متطلبات الذاكرة العشوائية (RAM) أثناء عملية الترقية.
ستعمل إعادة بناء الحاوية دائمًا لأنها تعطل الموقع مؤقتًا، مما يمنحها أقصى قدر من الذاكرة العشوائية (RAM).