قناة الدردشة لا تعرض ولا تحفظ الرسائل

لقد قمت بالترقية قبل بضع ساعات، والآن كل القنوات التي تحتوي على مجموعات مخصصة تظهر قناة فارغة. يمكنني الكتابة وإرسال الرسائل، ولكن إذا قمت بتسجيل الخروج أو تحديث الصفحات، فلن تحتوي القناة على سجل.

تظهر السجلات هذا:

رسالة

NoMethodError (undefined method `replies_count' for nil:NilClass)
(eval):17:in `_fast_attributes'
app/controllers/application_controller.rb:545:in `render_json_dump'
app/controllers/application_controller.rb:532:in `render_serialized'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:369:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

تتبع الأخطاء

plugins/chat/app/serializers/chat/message_serializer.rb:161:in `thread_reply_count'
(eval):17:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:468:in `rescue in attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:455:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:89:in `block in _serializable_array'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `map'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:79:in `_serializable_array'
active_model_serializers (0.8.4) lib/active_model/array_serializer.rb:73:in `serializable_array'

بيئة التشغيل

HTTP HOSTS: foorumi.katiska.eu

أفكار؟

تعديل:
إذا كان هذا يعني شيئًا، فإن تلك القنوات التي تتصرف بشكل سيء كانت في السابق فئات فرعية، ولكنني غيرت تلك إلى فئات عليا.

لكن مستخدمي يزعمون أن الأمور كانت معطلة قبل هذا التغيير.

مرحباً،

هل حاولت في أي وقت استخدام إعدادات مؤشرات الترابط التجريبية (والمخفية)؟

لقد غيرت شيئًا منذ فترة طويلة، ولكن… لا أتذكر ماذا، ولكني متأكد جدًا ربما كان شيئًا لم يعد تجريبيًا لاحقًا.

هل لديك شيء في ذهنك؟

لا يزال تجريبيًا ومخفيًا اليوم، وأعني أن لديك الحق في اللعب بهذا :slight_smile: أنا فقط أحاول تحديد نطاق قائمة المشكلات المحتملة.

يوضح الخطأ بوضوح أننا نحاول الوصول إلى رمز لا ينبغي الوصول إليه إذا لم يتم إنشاء مؤشر ترابط مطلقًا، لذا فهو أمر مفاجئ.

إذا قمت بتغيير الأشياء التي وجدتها هنا فقط، ولم يُظهر البحث أي شيء ذي صلة.

هل يمكن لـ Rails إظهار ما لم يعد موجودًا في الإعدادات الافتراضية؟

سأقوم بدمج هذا خلال الـ 30 دقيقة القادمة، وسيؤدي ذلك إلى حل مشكلتك. سنقوم بالتحقيق في هذا الأمر بشكل أكبر الأسبوع المقبل، لكنني لا أريدك أن تُعاق على هذا طوال عطلة نهاية الأسبوع.

4 إعجابات

عظيم!
ما زلت أرغب في فهم ما كسرته بحق… أنا متأكد من أنني قمت بتغيير الإعدادات الجديدة لتحسينات البحث وما شابه ذلك فقط في ذلك الوقت.
ولكن إذا كنت صريحًا تمامًا… لدي ميل لتجربة شيء ما إذا كان بإمكانه جعل المواضيع أفضل نوعًا ما أو شيء من هذا القبيل، وإذا لم يحدث شيء، فسوف أنساه على الفور.
(وأنا أزعج الجميع طوال الوقت بشأن التوثيق الكسول :man_facepalming: )

ليس لدي إجابة أفضل في الوقت الحالي، لكننا سنحقق في هذا الأسبوع المقبل، لقد قمت بدمجه للتو. سأذهب الآن، أخبرني إذا لم يقم بإصلاحه، سألقي نظرة غدًا.

إعجابَين (2)

أولاً: إصلاحك لم يساعد. آسف. أو ربما ساعد - كان هذا الخطأ غريباً بعض الشيء،
من فضلك، حاول أن تتبعني :wink:
لدي 5 قنوات:

  • ثلاث لـ TL1
  • واحدة للموظفين
  • واحدة لمجموعة مخصصة من 5 أشخاص

لقد نقلت كل شيء باستثناء قناة الموظفين من الفئات الفرعية إلى الأعلى.

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

لقد نجح الأمر، باستثناء أنني واجهت بعض المشكلات الغريبة مع سمة FKB Pro ونوافذ تسجيل الدخول/الاشتراك - تلك عرضت فقط أيقونة تحميل دوارة. حدث هذا فقط مع جهاز iPad الخاص بي على حد علمي.

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

حاولت الوضع الآمن وتعطيل معظم الإضافات عبر الإعدادات. لم يساعد ذلك وقمت بفتح هذا الموضوع.

باختصار وبعد عدة عمليات إعادة بناء وإزالة وإعادة تمكين للإضافات:

  • قناة الموظفين وقناتان من قنوات TL1 هي قنوات ذات حركة مرور منخفضة ونسيت تمامًا أنني أستخدم قاعدة الـ 14 يومًا هناك؛ لذلك لم تكن هناك أي مشكلات
  • كانت قناة المجموعة المخصصة معطلة إذا كان لدي كل من إضافتي Data Explorer و Category Lockdown مثبتتين، ولم يكن للتمكين/التعطيل أي تأثير
  • إعادة البناء بدون هاتين الإضافتين أصلحت تلك القناة المعطلة. عندما قمت بإعادة البناء مرة أخرى (هل هذه كلمة؟) مع كلتا الإضافتين، كانت تلك القناة لا تزال جيدة

تخميني غير المتعلم هو أن شيئًا ما سار بشكل خاطئ عندما جربت معاينات الفئة لأول مرة، ثم قمت بتعطيلها، ثم إعادة البناء مع قفل الفئة، وكانت الخطوة الأخيرة هي حذف معاينات الفئة. تطلب إصلاح بعض أخطاء SQL الغريبة أو البايتات الخاطئة إزالة تامة لـ Data Explorer و Lockdown، متبوعة بإعادة تثبيت أحدث.

ما لا يمكنني فهمه هو سجل أخطاء Discourse - كيف يتناسب مع كل هذا.

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

مرحباً @Jagster ، أنا أيضاً في فريق الدردشة وأبحث في هذا الأمر بشكل أعمق. بالنظر إلى ما قمت به، لا ينبغي لأي من ذلك أن يكون قد تسبب في هذا الخطأ. كل رسالة دردشة قد تكون مرتبطة بسلسلة محادثة في قاعدة البيانات عبر thread_id، وإحدى رسائلك تحتوي على thread_id لسلسلة محادثة غير موجودة لـ… لسبب ما. ليس لدينا أي رمز لحذف سلاسل المحادثة، لذا ربما كان هناك تحديث سار بشكل خاطئ.

هل يمكنك تشغيل هذا الاستعلام لي ونشر النتائج؟ سيتيح لنا رؤية ما إذا كانت لديك مشكلة واسعة النطاق أم أنها كانت مجرد حالة غريبة واحدة:

SELECT id, chat_channel_id, thread_id
FROM chat_messages
WHERE thread_id IS NOT NULL AND thread_id NOT IN (
  SELECT id FROM chat_threads
);

لقد استخدمت مستكشف البيانات وحصلت على هذا (أثق في قدرتك على قراءة json :wink: )

{"success":true,"errors":[],"duration":0.5,"result_count":2,"params":{},"columns":["id","chat_channel_id","thread_id"],"default_limit":1000,"rows":[[10721,14,152],[10744,14,152]]}

كانت القناة الإشكالية هي المعرف 14.

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

شكرًا على هذا، أعتقد أننا نتبع نهج “الانتظار والترقب” لهذه المشكلة، لأن:

  1. ليس من الواضح كيف حدثت و
  2. لم يتم تكرارها في عدد قليل من المواقع التي فحصتها
  3. لقد حدثت في مكان واحد فقط على موقعك

فحص آخر سيكون تشغيل هذا الاستعلام أيضًا:

SELECT * FROM chat_threads WHERE id = 152;

وتأكد من أنه لا يُرجع شيئًا.

مؤكد؛ صفر، لا شيء

بالتأكيد. من الصعب حقًا الإصلاح عندما لا يتمكن المرء من العثور على أي شيء.

شكرا يا رفاق!

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