Error 500 على صفحة التصنيف والصفحة الرئيسية بعد الترقية إلى 2.6

مرحباً،

لقد قمت مؤخراً بترقية منتداي (الذي يعمل منذ عام 2017) إلى الإصدار 2.6 (من الإصدار 2.4).
أثناء الترقية، لاحظت أن PostgreSQL 9.5 قد تم استبداله بـ PostgreSQL 12.

انتهت عملية إعادة البناء دون أخطاء، لكنني أواجه خطأ 500 في الصفحة الرئيسية (أو رسالة خطأ “أوبس”).
نفس الخطأ يظهر في صفحة التصنيفات.
لوحة الإدارة تعمل، وملف المستخدم يعمل، وقائمة المستخدمين تعمل، ومنشور واحد يعمل.
لكن قسم “الأكثر تقييماً” في لوحة الإدارة لا يعمل.

ليس لدي أي فكرة عن كيفية حل هذه المشكلة.
شكراً جزيلاً لكم

هل تم تثبيت أي إضافة؟

هل هناك أي شيء في /logs؟

أنت محق، لقد واجهت نفس الخطأ مرات عديدة في /logs

NoMethodError (طريقة hex غير معرفة لـ nil:NilClass)
app/models/upload.rb:180:in base62_sha1' app/models/upload.rb:174:in short_path’
app/models/upload.rb:146:in short_path' app/models/group.rb:767:in flair_url’
(eval):5:in _fast_attributes' lib/freedom_patches/ams_include_without_root.rb:54:in include!’
lib/freedom_patches/ams_include_without_root.rb:57:in include!' lib/freedom_patches/ams_include_without_root.rb:57:in include!’
app/controllers/application_controller.rb:440:in serialize_data' app/controllers/application_controller.rb:449:in render_serialized’
lib/topic_list_responder.rb:16:in block (2 levels) in respond_with_list' lib/topic_list_responder.rb:9:in respond_with_list’
app/controllers/list_controller.rb:102:in block (2 levels) in <class:ListController>' app/controllers/list_controller.rb:107:in public_send’
app/controllers/list_controller.rb:107:in block (2 levels) in <class:ListController>' app/controllers/application_controller.rb:340:in block in with_resolved_locale’
app/controllers/application_controller.rb:340:in with_resolved_locale' lib/middleware/omniauth_bypass_middleware.rb:68:in call’
lib/content_security_policy/middleware.rb:12:in call' lib/middleware/anonymous_cache.rb:336:in call’
config/initializers/100-quiet_logger.rb:19:in call' config/initializers/100-silence_logger.rb:31:in call’
lib/middleware/enforce_hostname.rb:22:in call' lib/middleware/request_tracker.rb:176:in call’

للأسف، الدخول في الوضع الآمن وتعطيل كل شيء لا يحل المشكلة.
لا يزال الخطأ قائمًا.

لقد واجهت هذا الخطأ مرات عديدة في السجلات:

NoMethodError (undefined method hex' for nil:NilClass) app/models/upload.rb:180:in base62_sha1’ app/models/upload.rb:174:in short_path' app/models/upload.rb:146:in short_path’ app/models/group.rb:

وفي لوحة تحكم المسؤول، تظهر رسالة خطأ في بعض المقاييس (المواضيع الأكثر إحالة):
“عذراً، استغرق الطلب وقتاً طويلاً جداً”

لقد واجهت هذه المشكلة من قبل، والسبب هو غياب صور الفئات. يحاول Discourse استرجاع أبعادها ويفشل.

يمكنك تجربة إزالة أي صور فئات.

لقد حاولت الاستعادة لكنني واجهت خطأً:

[2020-08-27 10:06:41] إيقاف Sidekiq مؤقتًا…
[2020-08-27 10:06:41] الانتظار لمدة تصل إلى 60 ثانية حتى يكمل Sidekiq تشغيل الوظائف…
[2020-08-27 10:38:40] استثناء: خطأ: تم اكتشاف تعارض
التفاصيل: العملية 594 تنتظر قفل AccessExclusiveLock على العلاقة 1113165 من قاعدة البيانات 16569؛ محجوزة بواسطة العملية 1617.
العملية 1617 تنتظر قفل AccessShareLock على العلاقة 1113221 من قاعدة البيانات 16569؛ محجوزة بواسطة العملية 594.
تلميح: راجع سجل الخادم للحصول على تفاصيل الاستعلام.
السياق: جملة SQL “ALTER TABLE public.categories SET SCHEMA backup;”
دالة PL/pgSQL inline_code_block السطر 11 عند EXECUTE

لا نملك صورة تصنيف :frowning:

هه :thinking:
ربما شعار المجموعة؟

كيف أعرف ما إذا كانت المشكلة ناتجة عن شارة المجموعة وكيف يمكن حلها؟
شكرًا جزيلاً لك

حاول إزالة أو إعادة رفع شارة صورة المجموعة من أي مجموعات، وانظر ما إذا كان ذلك يحل المشكلة.

تم ذلك، @michaeld! عمل رائع. @Olivier_Baillon، يمكنك وضع علامة على منشور مايكل كحل!

إذا كان لدى أي شخص آخر هذه المشكلة، يمكنك فعل ما يلي:

cd /var/discourse
./launcher enter app
rails c
Group.all.pluck(:id,:flair_icon,:flair_upload_id)
# بالنسبة للمجموعات التي تحتوي على `flair_upload_id` شيء مثل
g=Group.find(GROUP_ID_FROM_THE_LIST) # هذا هو المعرف وليس flair_upload_id
g.flair_upload
g.save

هناك طرق أكثر أناقة، ولكن إذا كان لديك عدد قليل فقط، فستساعدك هذه الخطوات على البدء.

شكرًا لك @michaeld و @pfaffman
لم أكن لأجد ذلك بنفسي أبدًا.
شكرًا جزيلاً لك