لقد مررت بتجربة غريبة جدًا أثناء إعادة تشغيل بسيطة لـ Amazon Lightsail instance الخاصة بي.
قمت بإعادة التشغيل… وانتظرت حتى إعادة التشغيل.
ظهرت لي رسالة خطأ “502 Gateway Error - Nginx” على بعض الصفحات (أفترض أنها غير مخزنة مؤقتًا). انتظرت قليلًا…
قمت بإعادة بناء discourse عبر shell.
ظهرت رسالة خطأ تفيد بأن إعادة البناء فشلت.
استخدمت ./discourse-doctor - فشل أيضًا.
عطلت الإضافات غير الرسمية وأعدت البناء - فشل أيضًا.
ظننت أنني في ورطة. وبينما كنت أبحث أكثر، راجعت المنتدى مجددًا فقط لأجد أنه يعمل بشكل طبيعي. وهذا لا معنى له على الإطلاق خاصةً أن الرد الفوري من مستندات discourse كان: تحذير! التطبيق لا يعمل حتى!
نظريتي هي أن هذا قد يكون مرتبطًا أكثر بحدود Amazon القابلة للزيادة (burstable limits) من أي شيء آخر. بما أن إعادة التشغيل ربما كانت مرهقة للخادم وتسببت في بعض المشاكل الأولية مع أخطاء 502، ولكن بالتأكيد رفع إعادة البناء الخادم إلى 70-80% من حدوده القابلة للزيادة، وربما لم تكن هناك موارد نظام كافية لتشغيل سكريبتات إعادة البناء؟
لذا فإن سؤالي النهائي هو (بما أن هذا كان مشكلة تؤرق عملية إعادة بناء التحديثات)، هل هناك طريقة لتقليل حمل سكريبتات التحديث على الخادم ومنعها من الانهيار؟ أعني أن هذا instance ذا ذاكرة عشوائية 8 جيجابايت، لذا فهو ليس ضعيفًا جدًا، إلخ.
سأحاول تحديثًا آخر قريبًا وأحدّث هذا. لم أحفظ ملف السجل، وتشغيل التحديثات يرفع منطقة الانفجار الخاصة بي بشكل كبير (خاصة بعد تشغيله ثلاث مرات)، لذا احتجت إلى الانتظار يومًا أو نحو ذلك لاستعادة مستويات انفجاري.
Seeding default
*** Bundling assets. This will take a while ***
$ RUBY_GC_MALLOC_LIMIT_MAX=20971520 RUBY_GC_OLDMALLOC_LIMIT_MAX=20971520 RUBY_GC_HEAP_GROWTH_MAX_SLOTS=50000 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0.9 bundle exec rake themes:update assets:precompile
Updating Dark...
Failed to update Dark
about.json contains invalid values: Maximum discourse version is invalid
مكون السمة (theme) أصبح قديماً وDiscourse يرفض استخدامه.
ولكن إذا قمت بتشغيل ./launcher rebuild app، فسيتم إيقاف الحاوية لبناء نسخة جديدة (لأنها تستخدم نفس ملفات قاعدة البيانات). وإذا فشل البناء، فستحتاج إلى إعادة تشغيل الحاوية لجعلها تعمل مرة أخرى.