قبل يومين قمت بترحيل منتداي إلى خادم جديد. سارت عملية الترحيل بشكل جيد وتمكن المستخدمون من تسجيل الدخول واستخدامه بشكل طبيعي. ومع ذلك، بعد 2-3 ساعات من تسجيل الدخول، وجد المستخدمون أنهم غير قادرين على استخدامه. لم ألاحظ المشكلة في البداية، ولكن في غضون 10-15 دقيقة وجدت أن حسابي قد تأثر أيضًا. ما كنت أراه هو أن صفحة المنتدى كانت تُخرج نفسها بشكل متكرر لأسفل الصفحة ولكن مع فقدان المحتوى… لذا العنوان… جزء من النص… العنوان مرة أخرى… جزء من النص مرة أخرى… العنوان مرة أخرى… إلخ.
افترضت أن شيئًا ما قد حدث خطأ أثناء الترحيل، ونظرًا لوجود عدد قليل جدًا من المشاركات منذ الترحيل وكان لدي الخادم القديم متاحًا، فقد قمت ببساطة بتشغيل المنتدى على الخادم القديم وأعدت توجيه DNS إليه. سيعطيني ذلك وقتًا لمعرفة ما حدث خطأ ومحاولة الترحيل مرة أخرى.
ثم اليوم، طلب مني منتداي “القديم” إعلامي بوجود تحديثات حرجة مطلوبة. قمت بتطبيقها وبدت الأمور على ما يرام. ومع ذلك، بعد ساعة أو ساعتين، بدأ المنتدى القديم يعرض نفس مشكلة العرض الغريبة التي كان يعرضها منتداي المُرَحَّل.
لذا الآن أفكر في أن هناك شيئًا خاطئًا بعد الترقية. كان الخادم المُرَحَّل سيحصل على أحدث رمز عند بنائه، لذلك عرض المشكلة على الفور. المنتدى القديم حصل فقط على التحديثات اليوم وبدأ في “الجنون” بعد فترة وجيزة.
حتى الآن حاولت بنجاح:
./launcher rebuild app
التعليق على جميع الإضافات في app.yml و ./launcher rebuild app
التشغيل في الوضع الآمن مع تشغيل جميع الخيارات
مسح ذاكرة التخزين المؤقت للمتصفح
تجربة متصفحات مختلفة (Chrome، Edge، Firefox، و Opera)
تبدو المشكلة تدريجية للمستخدمين المسجلين. سجلت الدخول باستخدام حساب اختبار اليوم ولم يعرض المشكلة، ولكن عندما جربت ذلك على الخادم المُرَحَّل، أظهر حساب الاختبار في النهاية نفس المشاكل. للأسف، لا يمكنني تجربة المزيد في الوقت الحالي لأن حساب المسؤول الخاص بي يعرض المشكلة لذا فهو غير قابل للاستخدام.
لدي نسخة احتياطية من قبل الترقية، لكنني أشك في أن ذلك سيساعد. إذا قمت بإعادة بناء المنتدى، فسوف يحصل على أحدث التحديثات، لذا إذا قمت باستعادة المحتوى إليه، فمن المحتمل أن يعود إلى “الجنون” مرة أخرى في غضون ساعات قليلة.
إعداد الخادم:
Debian 12 يعمل بنظام Docker Swarm v26.1.4. تتوفر مساحة قرص تبلغ 120 جيجابايت. 64 جيجابايت من ذاكرة الوصول العشوائي مع استخدام حوالي 20 جيجابايت فقط حاليًا. الاتصالات الواردة إلى الخادم تتم عبر Cloudflare Tunnels. الخادم القديم لديه مساحة قرص وذاكرة أقل، لكن لم يتم استنفاد أي منهما.
أحاول التفكير فيما يمكنني فعله الآن لمحاولة إعادة الأمور إلى العمل. أنا منفتح على الاقتراحات!
لقد تم تشغيله. لست متأكدا لماذا على الرغم من أنني لا أقوم بتشغيله عادة. لقد قمت بإيقافه (JS و CSS و HTML) ولكنني ما زلت أرى الصفحات المتكررة تتمرر لأسفل الشاشة.
ملاحظة: لاحظت أن التصغير التلقائي لـ Cloudflare سيتم إيقافه في أوائل أغسطس.
الوضع الآمن يعمل الآن. لا توجد أخطاء في وحدة تحكم JavaScript بخلاف تحذير إهمال المنطقة الزمنية. سأعود إلى السمة الافتراضية وأعطل جميع مكونات السمة لمعرفة ما إذا كانت تعمل بشكل جيد خارج الوضع الآمن ثم أعيد تمكينها واحدة تلو الأخرى لمعرفة ما إذا كان بإمكاني تضييق نطاقها.
سأحتاج إلى بعض الوقت قبل أن أتمكن من تأكيد كيف تسير الأمور لأن سيارة أجرة أبي يجب أن تذهب في رحلة!
يبدو أن التصغير التلقائي كان السبب. لا أعرف كيف/متى تم تمكينه. لم أقم بذلك عن قصد، فقد تعرضت لمشاكل مماثلة مع أنظمة أخرى في الماضي. أشك في أن Cloudflare أضاف مؤخرًا (أعتقد) زرًا لتنشيط مجموعة من الإعدادات الأساسية لتحسين الطريقة التي تتفاعل بها المتصفحات مع مواقع الويب. راجعت التغييرات المقترحة ومكّنت تلك التي بدت منطقية وآمنة. لقد عدت للنظر في الخيارات مرة أخرى ولا أرى أي إشارة إلى التصغير التلقائي، ولكن ربما تم تمكينه كجزء من “الإعدادات الأساسية”؟
تفسر ذاكرة التخزين المؤقت لـ Cloudflare أيضًا سبب ظهور هذه المشكلة فجأة بعد ساعات من تطبيق تحديثات Discourse. لدي ذاكرة التخزين المؤقت لـ Cloudflare TTL للمتصفح مضبوطة على 4 ساعات. لم أقم بمسح ذاكرة التخزين المؤقت لـ Cloudflare بعد التحديث، لذلك لبضع ساعات بعد ذلك كان الناس لا يزالون يحصلون على الملفات القديمة “الجيدة” التي كانوا يحصلون عليها لأسابيع منذ آخر تحديث لـ Discourse. ثم بعد 4 ساعات، بدأت Cloudflare في تحديث ذاكرة التخزين المؤقت الخاصة بها، ورأت ملفات Discourse جديدة وقامت بتصغيرها قبل إضافتها إلى ذاكرة التخزين المؤقت الخاصة بها. ثم عندما طلبت المتصفحات تحديثات لذاكرة التخزين المؤقت الخاصة بها، حصلت على الملفات التالفة. نظرًا لأن المتصفحات قامت بتحديث ذاكرة التخزين المؤقت الخاصة بها في أوقات مختلفة، رأى كل مستخدم أن الأمور تسوء في أوقات مختلفة.
دروس مستفادة:
امسح ذاكرة التخزين المؤقت لـ Cloudflare بعد تطبيق تحديث Discourse. يبدو الأمر واضحًا الآن، لكنني لم أفكر فيه من قبل!
لا تقم بتمكين التصغير التلقائي. لا بد أنني فعلت ذلك ولكنني لا أعرف كيف/متى. كنت أعرف بالفعل أنه ليس فكرة جيدة بعد أن كسرت موقع ووردبريس به منذ بعض الوقت، لكن هذا عزز الرسالة.