حل مشكلة إضافة Discourse التي تسبب خطأ 500

لقد قمت مؤخرًا بترقية إصدار Discourse الخاص بي، وجميع الإضافات محدثة.
بعد الترقية، أحصل الآن على خطأ 500 عند محاولة تحديد رد كحل.

فيما يلي تفاصيل الخطأ التي تظهر في وحدة التحكم:

    فشل تحميل المورد: استجاب الخادم بحالة 500 ()
_application-ed0ac69…88e883e0db.js:11141 SyntaxError: رمز غير متوقع < في JSON عند الموضع 0
    في Function.parse [as parseJSON] (<anonymous>)
    في n (_application-ed0ac69…88e883e0db.js:11137)
    في e.popupAjaxError (_application-ed0ac69…88e883e0db.js:11180)
    في E (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    في w (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    في g (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    في t.invoke (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    في e.t.flush (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    في e.t.flush (ember_jquery-8e338e1…8f98e499a037a9.js:1)
    في e.t._end (ember_jquery-8e338e1…8f98e499a037a9.js:1)
ember_jquery-8e338e1…8f98e499a037a9.js:1 لم يتم التقاط
Object
jqXHR: {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
textStatus: "error"
errorThrown: ""
_discourse_displayed: true
__proto__: Object

هل قمت بتثبيت إضافات غير رسمية؟ هل يعمل الموقع في الوضع الآمن مع الإضافات والقوالب الرسمية فقط؟

نعم، لقد قمت بتثبيت إضافة غير رسمية ولم أتحقق من وضع الأمان (لا أعرف كيفية القيام بذلك :noobface:)

ومع ذلك، فقد راجعت السجلات وأظهرت ما يلي:
ArgumentError (unknown keyword: duration) /var/www/discourse/app/models/topic.rb:1138:in 'set_or_create_timer'

(تتبع الخطأ إذا كنت مهتمًا: https://pastebin.com/chKtDTeL.)

ثم انتقلت إلى إعدادات الحل وضعت ساعات الإغلاق التلقائي على 0 (القيمة السابقة 72) والآن يعمل الأمر، لكنني أرغب حقًا في استخدام هذه الميزة. هل يمكنكم المساعدة؟

ما عليك سوى الانتقال إلى /safe-mode على موقعك للوصول إلى إعدادات الوضع الآمن. يبدو الأمر كما يلي:

حسنًا، شخص ما من فريقنا جرب هذا بالفعل
· تعطيل الإضافات غير الرسمية (مثل إضافة الشارات الخاصة بنا) لم يحل المشكلة.
· تعطيل القالب الخاص بنا (مثل جافا سكريبت المخصص) لم يحل المشكلة.
· تعطيل الإضافات غير الرسمية والقالب معًا لم يحل المشكلة.
استخدام الوضع الآمن.

لم أجرب تعطيل جميع الإضافات لأنكما تعلمون أن ذلك سيؤدي إلى تعطيل الحل أيضًا :grin:

هل لديك أي إضافات لـ Pavilion؟

يبدو أن الأمر مرتبط بما وجدته في السجلات. آخر تحديث من قبل مؤلف الإضافة هو هذا

لا توجد إضافات من باڤيليون

لقد قمت بتحديث موقعي الشخصي إلى أحدث إصدار وقمت بتفعيل إضافة ‘solved’، وهي تعمل بشكل جيد بالنسبة لي. لا أستطيع تكرار المشكلة.

أعتقد أنني عرفت المشكلة. نحن على الإصدار المستقر (وليس الاختبارات الافتراضية التي نجحت) الذي لا يحتوي على تغيير ‘المدة’ بعد.

شكرًا لك على التدقيق في الأمر، نقدر ذلك حقًا! نعتقد أننا سننتظر حتى يتم تحديث الفرع المستقر لاستخدام هذه الميزة.

مرحباً، لدي نفس المشكلة:

إصدار Discourse:

الإضافات الخاصة بي:

لقد جربت الوضع الآمن، والنتيجة نفسها.

سجل الأخطاء:
image

الرسالة

ArgumentError (مفتاح غير معروف: duration)
/var/www/discourse/app/models/topic.rb:1138:in `set_or_create_timer'

مسار الاستدعاء

/var/www/discourse/app/models/topic.rb:1138:in `set_or_create_timer'
/var/www/discourse/plugins/discourse-solved/plugin.rb:126:in `accept_answer!'
/var/www/discourse/plugins/discourse-solved/plugin.rb:206:in `accept'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/base.rb:196:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rescue.rb:22:in `process_action'

شكراً لمساعدتكم

مرحبًا بالجميع،
هل لديك وقت لفكرة؟

أنت على إصدار محدد من Discourse، وعلى الأرجح لا يحتوي على الميزة المنقولة. يعمل إضافة Solved بشكل جيد مع أحدث فرع تم اختباره بنجاح، لذا يُنظر في الترقية إليه.

لماذا؟
أنا أستخدم إصدارًا غير مستقر.

إذن، إذا فهمتُ بشكل صحيح، فإن الإصدار المستقر ليس خيارًا جيدًا لخادم الإنتاج الخاص بـ Discourse؟

  ## أي إصدار Git يجب أن يستخدم هذا الحاوية؟ (الافتراضي: tests-passed)
  version: stable

إنه جيد، لكنه بشكل عام قديم جدًا ويفتقر إلى الميزات الجديدة. يجب عليك حقًا استخدام tests-passed لأنه مستقر بدرجة كافية ويحتوي على جميع الميزات الجديدة وتحسينات الأداء.

حسنًا، شكرًا لك على ردك.

لقد قمت بإصلاح المشكلة أمس. هل يمكنك تحديث إضافة discourse-solved والتأكد مما إذا كانت المشكلة قد حُلت لديك؟

مرحبًا @kris.kotlarek،
هذا مناسب لي مع هذا الإصدار:

شكرًا لك