لا يمكن حفظ الفئة/الوسوم المرصودة الافتراضية

تم فتح موضوع منفصل لهذه المشكلة. أنا على نسخة tests-passed وقد قمت بإعادة البناء بالفعل. لكن الوضع الآمن لا يزال يعاني من المشكلة.
(2cb805a683)

سجل الأخطاء المجهول: TypeError: Cannot read property 'categories' of undefined at https://domain - Pastebin.com

خطوات التكرار؟ لا يحدث شيء عند تحديد فئة كمراقبة افتراضية والضغط على الزر الأخضر. يجعل علامة الضلعة الحمراء الأمر يُلغى، ولا تفعل علامة الصح الخضراء أي شيء (يجب أن تسأل عما إذا كنت تريد تطبيقه على المستخدمين القدامى، وهذا يعمل على منتدى آخر قمت بتثبيته).

تعديل: عنوان أوضح

هذه ليست الحل ولا هي الحالة.

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

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

هل قمت باستيراد بيانات من مضيف يحمل اسمًا آخر ثم استعدتها على هذا الخادم؟

نعم. على وجه التحديد، قمت بإعداد خادم الاختبار على stage1.domain.com، وقمت بتشغيل الإعداد الأولي، وتمكين عمليات الاستعادة، وقمت برفع الملف من واجهة الويب ثم استعدت البيانات.

لكن دعني أسأل بهذه الطريقة: هل من المفترض أن يطابق اسم المضيف الموجود في /etc/hosts اسم المضيف في ملف app.yml الخاص بـ Discourse بدقة؟

وكيف يرتبط ذلك باسم المضيف الذي قمت بإعداده مسبقًا في DO، والاسم الذي يحملته القطرة (droplet) داخل DO؟

لا، اسم المضيف في ملف /etc/hosts لا يهم. إذا كان له أهمية، لكان تم طلب تأكيد ذلك في دليل التثبيت.

يحتوي الدليل الذي أرفقه جاي على جميع الخطوات اللازمة لتغيير أسماء النطاقات.

هل قرأتم كلاكما هذه المشكلة؟ إنها لا علاقة لها بتغيير النطاق، ومن المحبط حقًا رؤية الناس يرمون رابطًا عشوائيًا في وجهي. أنا أعرف الدليل. لماذا يشير الجميع باستمرار إلى هذا الدليل؟ هذه ليست المشكلة، موقعي يعمل بشكل جيد باستثناء الخطأ.

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

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

إذن، هو يعمل.

إلى أن تستعيد نسختك الاحتياطية.

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

نعم. هذه وظيفتهم، لذا من المرجح ألا يكونوا متاحين حتى يوم الاثنين.

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

لكنني لم أفعل شيئًا غريبًا. موقعي الإلكتروني أطلق تسجيل المستخدمين - لم أقم بأي تدخل في قاعدة البيانات. هذا يتركني تمامًا في حيرة من أمري حول كيفية حل هذه المشكلة.

هل يمكنك إخباري بما تحتاجه لمساعدتي في حلها؟ لقد زودتُ رابط Pastebin في المنشور الأصلي بسجل الأخطاء الخاص بي. هل هذا يساعد؟

كيف قمت بإنشاء بيانات الاستعادة: البيانات هي في الواقع قاعدة بيانات عمرها يومان فقط تم إنشاؤها من الصفر.

  1. نسخة احتياطية تم إجراؤها على موقع الإنتاج.
  2. تحميل ملف tar.gz عبر عنوان URL المرسَل عبر البريد الإلكتروني.
  3. إعداد بيئة تجريبية على قطرة DO جديدة.
  4. السماح بالاستعادة في الإعدادات وإجراء الاستعادة عبر واجهة المسؤول.

يجب إصلاح هذه المشكلة،

هذا ما ظننته ورجوتُه عند رؤية هذا الالتزام. موقع الاختبار الجديد الذي تم إعداده يحتوي فعليًا على هذا الإصدار الجديد، والمشكلة لا تزال قائمة..

تعديل: بيئة الاختبار لدي تحتوي فعليًا على ترقية - جاري التثبيت الآن وسأبلغ عن النتيجة.

تعديل 2: @dax يمكنني تأكيد أنني قمت بتحديث نطاق stage1 ولا تزال لدي نفس المشكلة.
تم التثبيت
2.4.0.beta6
(6f6a02645c)

هل تشعر بالراحة في إجراء بعض عمليات التصحيح (Debugging)؟ لا أستطيع تكرار الخطأ الذي تواجهه، وبما أن النظام يعمل في بيئة الإنتاج، فإن سجلات الأخطاء (Logs) لديك لا توفر لي معلومات كافية حتى الآن.

ما يمكنك فعله:

  • افتح وحدة تحكم مطوري كروم (Chrome DevTools) (يمكن فعل ذلك على متصفحات أخرى غير كروم، لكنني أعرف هذا المتصفح بشكل أفضل)
  • قم بالإجراء الذي يسبب المشكلة
  • انسخ السطر الأول من مكدس الاستدعاء (Stack Trace) الذي سيظهر في Pastebin الخاص بك، ويكون على النحو التالي: https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519
  • اضغط على Cmd + Shift + P (لا أعرف الاختصار الدقيق في نظام ويندوز، لكنه قريب من هذا على الأرجح)
  • تأكد من إزالة الرمز > ثم الصق الرابط التالي: https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519. يجب أن يعثر على ملف، انقر عليه
  • انقر على الرمز {} الموجود في الزاوية اليسرى السفلية، يجب أن يعرض لك بعض الكود. يرجى نسخ هذا الكود ولصقه لي هنا

(من الممكن أن يكون الرابط https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519 قابلاً للنقر في وحدة التحكم الخاصة بك، ويمكنك ببساطة النقر عليه، ثم الضغط على {} لعرض الكود بتنسيق منسق)

@j.jaffeux تمكنت من اتباع خطواتك، ولكن للأسف عند النقر على الرابط (أو البحث عنه) يتم تحويلي إلى ملف، لكنه فارغ:

إذا رغبت، يمكنني تزويدك بتفاصيل بيئة الاختبار الخاصة بي (staging env) حتى تتمكن من إجراء بعض الاختبارات. (إنها بيئة عبر الإنترنت)

بالتأكيد، إذا تمكنت من إعادة إنتاج المشكلة في بيئة الاختبار (staging)، يرجى إرسال التفاصيل عبر الرسالة.

حسناً، يحدث هذا في كتلة الكود التالية:

define("discourse/routes/about", ["exports", "discourse/lib/ajax", "discourse/routes/discourse"], function(e, t, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }),
    e.default = n.default.extend({
        model: function() {
            var o = this;
            return (0,
            t.ajax)("/about.json").then(function(i) {
                var t = []
                  , n = []
                  , s = moment().locale("en").utc().subtract(1, "year");
                i.about.admins.forEach(function(e) {
                    moment(e.last_seen_at) > s && t.push(e)
                }),
                i.about.moderators.forEach(function(e) {
                    moment(e.last_seen_at) > s && n.push(e)
                }),
                i.about.admins = t,
                i.about.moderators = n;
                var e = i.about.category_moderators;
                return e && e.length && e.forEach(function(e, t) {
                    var n = o.site.categories.findBy("id", e.category_id);
                    i.about.category_moderators[t].category = n
                }),
                i.about
            })
        },
        titleToken: function() {
            return I18n.t("about.simple_title")
        },
        actions: {
            didTransition: function() {
                return this.controllerFor("application").set("showFooter", !0),
                !0
            }
        }
    })
})

وهو موجود هنا في مصدر الكود:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/routes/about.js.es6#L25

لا أعرف بعد كيف تؤثر هذه الإجراءات على هذا… سأبحث في الأمر غداً.

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

المشكلة لا تزال قائمة في الإصدار 2.4.0beta7.

تعديل 2: لقد اكتشفت للتو أنني غير قادر أيضًا على حفظ الإعدادات التالية:

بعد كل التزام، كنت أحاول باستمرار.

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

تم الإصلاح في التعديل