تعطل Discourse في وضع الصيانة

مرحباً، خادم Discourse الخاص بي عالق في وضع الصيانة.
لقد تركته في وضع الصيانة لعدة أشهر عن قصد، وقمت بالترقية إلى العديد من الإصدارات منذ ضبطه في وضع الصيانة في البداية.

انتهت جلستي وتم تسجيل خروجي، والآن لا يمكنني تسجيل الدخول مرة أخرى.

يمكنني الوصول إلى خادم Discourse عبر SSH.
لقد جربت الخطوات التالية:

  1. SSH إلى خادم Discourse
  2. انتقل إلى /var/discourse/
  3. قم بتشغيل: ./launcher enter app
  4. قم بتشغيل rails c

لقد جربت عدة أشياء لتعطيل وضع الصيانة هنا.

[1] pry(main)>
[2] pry(main)>
[3] pry(main)> Discourse.disable_readonly_mode(Discourse::READONLY_MODE_KEY)
=> true
[4] pry(main)> Discourse.disable_readonly_mode
=> true

عندما أحول تركيزي بعيدًا عن SSH إلى متصفح الويب الخاص بي، يمكنني رؤية أن لافتة وضع الصيانة تختفي.

ثم بعد بضع ثوانٍ تعود مرة أخرى.

لقد اطلعت بالفعل على هذه المستندات:

من فضلك ساعدني

شخص ما في الموضوع الأول المرتبط حالف الحظ في إيقاف الحاوية ثم إعادة تشغيلها. هل يمكن أن يكون ذلك يستحق المحاولة؟

شكرا على الاقتراح. للأسف لم يساعدني هذا :frowning:

لقد قمت بتشغيل

docker ps
docker kill app
docker start app

شيء مثير للاهتمام هو أنني حاولت أيضًا تمكين وضع القراءة فقط يدويًا:
مثال:

[8] pry(main)> Discourse.enable_readonly_mode
=> true
[9] pry(main)> Discourse.disable_readonly_mode
=> true
[10] pry(main)>

عند القيام بذلك، لاحظت أن اللافتة تعود ولا يمكنني حتى النقر فوق زر تسجيل الدخول لأنه يقول “تسجيل الدخول معطل بينما الموقع في وضع القراءة فقط.” وأرى أيضًا اللافتة التي تقول:

الموقع في وضع القراءة فقط. يرجى المتابعة للتصفح، ولكن الرد والإعجابات والإجراءات الأخرى معطلة في الوقت الحالي.

عندما أقوم باستدعاء disable_readonly_mode مرة أخرى، تختفي لافتة وضع الصيانة، ويمكنني النقر فوق زر تسجيل الدخول. يقوم Discourse حتى بتسليمي إلى موفر المصادقة SSO.

ومع ذلك، عندما يتم توجيهي مرة أخرى إلى Discourse، أحصل على صفحة كاملة تقول “الموقع في وضع القراءة فقط. التفاعلات معطلة.”

لقد قمت ببعض البحث، وبينما لم أتوصل إلى حل بعد، يبدو أن الرابط /u/admin-login سيتجاوز وضع القراءة فقط، ويسمح لك بتسجيل الدخول:

@41821 هل يمكنك تجربة Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)

4 إعجابات

لم يتمكن أي شيء فعلته من إخراجي من الحالة.
بعد Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)، ينتقل إلى وضع القراءة/الكتابة لثانية واحدة ويعود إلى وضع القراءة فقط بعد ذلك مباشرة. لا شيء يمكن تمييزه في السجلات. حتى مسح Redis لا يساعد. ولا مسح مفاتيح redis يدويًا.

هذا على الأرجح خطأ لأن التراجع من 2.8.7 إلى 2.8.3 (الذي كان الإصدار الوظيفي السابق لدي) صحح المشكلة.

حاولت المرور عبر الكود لمعرفة مكان إدخال الخطأ، لكنني لم أتمكن من معرفته.

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

هل هذا موقع مستضاف ذاتيًا؟ سيؤدي مسح Redis إلى مسح كل شيء حيث يعتمد منطق القراءة فقط بالكامل على تعيين مفاتيح Redis الصحيحة.