مشكلة في مراجعات المشاركات بعد التحديث إلى 2.8.6 مستقر أو 2.9.0.beta7

@darkpixlz هل يمكنك تأكيد إصدار Discourse الذي تستخدمه؟ مستقر، تجريبي، أم تم اجتياز الاختبارات؟

أنا أقوم بتشغيل النسخة التجريبية، 2.9.0beta7. أنا متأخر عن آخر تحديثين، ولن يؤثر أي منهما على هذه المشكلة.

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

قائمة التحديثات:

Discourse Akismet
Apple Auth
BBCode color
Cakeday
Calendar
Custom Wizard
Follow
Math
Microsoft Auth
Perspective API
ImgFlip
Prometheus
QA
Reactions
Solved
Spoiler
Steam Login
User notes
Voting
Who’s Online
Yearly Review
Docker manager
Styleguide

لقد قمت للتو بدفع هذا الالتزام إلى core:

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

هل يمكن لشخص لديه المشكلة التحديث إلى أحدث إصدار تم اجتيازه للاختبارات، ثم تشغيل:

./launcher enter app
cd /var/www/discourse
bin/rake "revisions:debug_deserialization"

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

بمجرد أن نعرف بالضبط ما الذي يسبب المشكلة، سيساعدنا ذلك في بناء حل. (من المحتمل أن يكون إما ترحيل قاعدة بيانات في المكون الإضافي لطرف ثالث، أو مهمة rake أساسية يمكنها تنظيف أي بيانات غير متوقعة).

6 إعجابات

لقد طلبت من المضيف تشغيله، وسأقوم بالتحديث هنا بمجرد الحصول على نتيجة.

إعجابَين (2)

نحن ننتظر عودة الأشخاص بالمعلومات من مهمة “rake” قبل المتابعة هنا.
أخبرنا.

إعجابَين (2)

نعم، لم يرد علي أبدًا، لقد ذكرته للتو.

مرحباً يا رفاق،
للأسف أضعت وقتي في هذا الموضوع…

لذلك قمت للتو بالتحديث إلى أحدث إصدار ولا تزال المشكلة قائمة لدي أيضًا.

حاولت تشغيل هذا ولكن أعتقد أن إعداداتي لا تسمح لي بالمساعدة هنا:

لديها تعمل داخل docker / postgres.
هل هناك أي شيء آخر يمكنني القيام به لمساعدتك في هذا؟

هذه هي الإضافات التي أستخدمها

تحتاج إلى إعداد البيئة … جرب rake بدلاً من bin/rake

آه، إذا قمت بتشغيل ./launcher enter app، فسوف يجعلك ذلك root. يبدو أنك ستحتاج إلى التبديل إلى المستخدم discourse للوصول إلى قاعدة البيانات. هذا يجب أن يقوم بالمهمة:

sudo -EH -u discourse bin/rake "revisions:debug_deserialization"

نوع المخرجات التي نبحث عنها هو

Checking 5 PostRevision records in batches of 1000... this may take some time...

Done

---- Summary ----
Checked records: 5

---- Examples ----

(على الرغم من أنه من الواضح، إذا كانت هناك مشكلات، فلن يكون قسم “أمثلة” فارغًا)

إعجابَين (2)

كان هذا هو المخرج الخاص بنا؛

sudo -EH -u discourse bin/rake "revisions:debug_deserialization"

جارٍ التحقق من 1096 سجل PostRevision في دفعات من 1000... قد يستغرق هذا بعض الوقت...

تم

---- ملخص ----
السجلات التي تم فحصها: 1096

---- أمثلة ----
إعجاب واحد (1)

يا! هذا غير متوقع!

هل ما زلت ترى أخطاء عند محاولة عرض بعض مراجعات المنشورات؟

بالمناسبة، هل هذا “تثبيت قياسي”، أم أنه مستضاف في مجموعة متعددة المواقع؟

نعم، هذا قياسي.

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

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

حسناً رائع، شكراً @darkpixlz

@B-iggy إذا كان بإمكانك تجربة الأمر في هذا المنشور، أعتقد أنه يجب أن يحل الخطأ الذي رأيته في المرة الأولى :crossed_fingers:

إعجابَين (2)

شكراً جزيلاً يا رفاق!
هذه المرة تم التشغيل بنجاح وهذا هو الناتج

$w3dg @ 06:14:52 > /var/discourse: sudo ./launcher enter app
[sudo] password for w3dg:
WARNING: Docker version 17.05.0-ce deprecated, recommend upgrade to 17.06.2 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
root@W3DG-app:/var/www/discourse# cd /var/www/discourse
root@W3DG-app:/var/www/discourse# sudo -EH -u discourse bin/rake "revisions:debug_deserialization"
Checking 18451 PostRevision records in batches of 1000... this may take some time...

Done

---- Summary ----
Checked records: 18451

---- Examples ----

root@W3DG-app:/var/www/discourse#

ولكن للأسف لا يزال السجل الخاص بي في هذا الموضوع هنا فارغًا. آسف. هل هناك سجلات أخرى يمكنني تقديمها؟

تثبيت الـ discourse الخاص بي هو أيضًا تثبيت قياسي بالمناسبة.

إعجابَين (2)

شكراً @B-iggy. هذا مفاجئ للغاية - كنت أتوقع أن يسرد البرنامج النصي الأخطاء. :thinking:
هل يمكنك من فضلك محاولة زيارة /logs على موقعك ومعرفة ما إذا كانت هناك أي سجلات أخطاء حديثة؟ على وجه الخصوص، نحن نبحث عن تلك التي تبدأ بـ Psych::DisallowedClass

إعجابَين (2)

Sure. I have bunch of Psych errors.
Question is: which one you need? :slight_smile:

/usr/local/lib/ruby/2.7.0/psych/class_loader.rb:97:in `find'
/usr/local/lib/ruby/2.7.0/psych/class_loader.rb:28:in `load'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:411:in `resolve_class'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:208:in `visit_Psych_Nodes_Mapping'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `block in register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `each'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:141:in `visit_Psych_Nodes_Sequence'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `block in register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `each'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:141:in `visit_Psych_Nodes_Sequence'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:340:in `block in revive_hash'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:338:in `each'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:338:in `each_slice'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:338:in `revive_hash'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:162:in `visit_Psych_Nodes_Mapping'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:313:in `visit_Psych_Nodes_Document'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych.rb:360:in `safe_load'
activerecord (7.0.3.1) lib/active_record/coders/yaml_column.rb:50:in `yaml_load'
activerecord (7.0.3.1) lib/active_record/coders/yaml_column.rb:26:in `load'
activerecord (7.0.3.1) lib/active_record/type/serialized.rb:22:in `deserialize'
activemodel (7.0.3.1) lib/active_model/type/helpers/mutable.rb:8:in `cast'
activemodel (7.0.3.1) lib/active_model/attribute.rb:179:in `type_cast'
activemodel (7.0.3.1) lib/active_model/attribute.rb:43:in `value'
activemodel (7.0.3.1) lib/active_model/attribute_set.rb:46:in `fetch_value'
activerecord (7.0.3.1) lib/active_record/attribute_methods/read.rb:38:in `_read_attribute'
activemodel (7.0.3.1) lib/active_model/attribute_methods.rb:277:in `modifications'
app/serializers/post_revision_serializer.rb:233:in `block in all_revisions'
app/serializers/post_revision_serializer.rb:228:in `each'
app/serializers/post_revision_serializer.rb:228:in `all_revisions'
app/serializers/post_revision_serializer.rb:187:in `revisions'
app/serializers/post_revision_serializer.rb:254:in `previous'
app/serializers/post_revision_serializer.rb:50:in `previous_hidden'
(eval):5:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456: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/serializer.rb:347:in `as_json'
activesupport (7.0.3.1) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.3.1) lib/active_support/json/encoding.rb:22:in `encode'
activesupport (7.0.3.1) lib/active_support/core_ext/object/json.rb:42:in `to_json'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:331:in `to_json'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapters/oj.rb:56:in `dump'
multi_json (1.15.0) lib/multi_json/adapter.rb:25:in `dump'
multi_json (1.15.0) lib/multi_json.rb:139:in `dump'
app/controllers/application_controller.rb:547:in `render_json_dump'
app/controllers/posts_controller.rb:428:in `latest_revision'
actionpack (7.0.3.1) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.3.1) lib/abstract_controller/base.rb:215:in `process_action'
actionpack (7.0.3.1) lib/action_controller/metal/rendering.rb:53:in `process_action'
actionpack (7.0.3.1) lib/abstract_controller/callbacks.rb:234:in `block in process_action'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
i18n (1.12.0) lib/i18n.rb:322:in `with_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:138:in `run_callbacks'
actionpack (7.0.3.1) lib/abstract_controller/callbacks.rb:233:in `process_action'
actionpack (7.0.3.1) lib/action_controller/metal/rescue.rb:22:in `process_action'
actionpack (7.0.3.1) lib/action_controller/metal/instrumentation.rb:67:in `block in process_action'
activesupport (7.0.3.1) lib/active_support/notifications.rb:206:in `block in instrument'
activesupport (7.0.3.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
activesupport (7.0.3.1) lib/active_support/notifications.rb:206:in `instrument'
actionpack (7.0.3.1) lib/action_controller/metal/instrumentation.rb:66:in `process_action'
actionpack (7.0.3.1) lib/action_controller/metal/params_wrapper.rb:259:in `process_action'
activerecord (7.0.3.1) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
actionpack (7.0.3.1) lib/abstract_controller/base.rb:151:in `process'
actionview (7.0.3.1) lib/action_view/rendering.rb:39:in `process'
rack-mini-profiler (3.0.0) lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'
actionpack (7.0.3.1) lib/action_controller/metal.rb:188:in `dispatch'
actionpack (7.0.3.1) lib/action_controller/metal.rb:251:in `dispatch'
actionpack (7.0.3.1) lib/action_dispatch/routing/route_set.rb:49:in `dispatch'
actionpack (7.0.3.1) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (7.0.3.1) lib/action_dispatch/journey/router.rb:50:in `block in serve'
actionpack (7.0.3.1) lib/action_dispatch/journey/router.rb:32:in `each'
actionpack (7.0.3.1) lib/action_dispatch/journey/router.rb:32:in `serve'
actionpack (7.0.3.1) lib/action_dispatch/routing/route_set.rb:852:in `call'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
rack (2.2.4) lib/rack/tempfile_reaper.rb:15:in `call'
rack (2.2.4) lib/rack/conditional_get.rb:27:in `call'
rack (2.2.4) lib/rack/head.rb:12:in `call'
actionpack (7.0.3.1) lib/action_dispatch/http/permissions_policy.rb:38:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
rack (2.2.4) lib/rack/session/abstract/id.rb:266:in `context'
rack (2.2.4) lib/rack/session/abstract/id.rb:260:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/cookies.rb:697:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:99:in `run_callbacks'
actionpack (7.0.3.1) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/debug_exceptions.rb:28:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/show_exceptions.rb:26:in `call'
logster (2.11.3) lib/logster/middleware/reporter.rb:43:in `call'
railties (7.0.3.1) lib/rails/rack/logger.rb:40:in `call_app'
railties (7.0.3.1) lib/rails/rack/logger.rb:27:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/remote_ip.rb:93:in `call'
actionpack (7.0.3.1) lib/action_dispatch/middleware/reque
Message (33 copies reported)

Psych::DisallowedClass (Tried to load unspecified class: Tag)
app/serializers/post_revision_serializer.rb:233:in `block in all_revisions'
app/serializers/post_revision_serializer.rb:228:in `each'
app/serializers/post_revision_serializer.rb:228:in `all_revisions'
app/serializers/post_revision_serializer.rb:187:in `revisions'
app/serializers/post_revision_serializer.rb:254:in `previous'
app/serializers/post_revision_serializer.rb:50:in `previous_hidden'
(eval):5:in `_fast_attributes'
app/controllers/application_controller.rb:547:in `render_json_dump'
app/controllers/posts_controller.rb:428:in `latest_revision'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'

Backtrace

/usr/local/lib/ruby/2.7.0/psych/class_loader.rb:97:in `find'
/usr/local/lib/ruby/2.7.0/psych/class_loader.rb:28:in `load'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:411:in `resolve_class'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:208:in `visit_Psych_Nodes_Mapping'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:16:in `visit'
/usr/local/lib/ruby/2.7.0/psych/visitors/visitor.rb:6:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:32:in `accept'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `block in register_empty'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `each'
/usr/local/lib/ruby/2.7.0/psych/visitors/to_ruby.rb:332:in `register_empty'

Env

HTTP HOSTS: forum.empyrion-homeworld.net
Psych::DisallowedClass (Tried to load unspecified class: Tag)
app/serializers/post_revision_serializer.rb:233:in `block in all_revisions'
app/serializers/post_revision_serializer.rb:228:in `each'
app/serializers/post_revision_serializer.rb:228:in `all_revisions'
app/serializers/post_revision_serializer.rb:187:in `revisions'
app/serializers/post_revision_serializer.rb:254:in `previous'
app/serializers/post_revision_serializer.rb:50:in `previous_hidden'
(eval):5:in `_fast_attributes'
app/controllers/application_controller.rb:547:in `render_json_dump'
app/controllers/posts_controller.rb:428:in `latest_revision'
app/controllers/application_controller.rb:415:in `block in with_resolved_locale'
app/controllers/application_controller.rb:415:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
config/initializers/008-rack-cors.rb:25:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'
إعجاب واحد (1)

شكراً، هذا مفيد! هل يمكنك محاولة تشغيل هذا الأمر ولصق المخرجات؟

sudo -EH -u discourse bin/rails runner "puts PostRevisor.tracked_topic_fields.inspect"

هذا يجب أن يساعدنا في تحديد الإضافات التي تضيف بيانات إلى PostRevisions :crossed_fingers:

على موقعي المحلي، يعرض

{:title=>#<Proc:0x0000000124b02960 /Users/david/discourse/discourse/lib/post_revisor.rb:79>, :archetype=>#<Proc:0x0000000124b028c0 /Users/david/discourse/discourse/lib/post_revisor.rb:83>, :category_id=>#<Proc:0x0000000124b020a0 /Users/david/discourse/discourse/lib/post_revisor.rb:87>, :tags=>#<Proc:0x0000000124b01880 /Users/david/discourse/discourse/lib/post_revisor.rb:103>, :featured_link=>#<Proc:0x0000000124b017e0 /Users/david/discourse/discourse/lib/post_revisor.rb:129>}
إعجاب واحد (1)

شكرا جزيلا!
هذا هو مخرجاتي

root@W3DG-app:/var/www/discourse# sudo -EH -u discourse bin/rails runner "puts PostRevisor.tracked_topic_fields.inspect"
{:title=>#<Proc:0x0000563008c879c0 /var/www/discourse/lib/post_revisor.rb:79>, :archetype=>#<Proc:0x0000563008c87920 /var/www/discourse/lib/post_revisor.rb:83>, :category_id=>#<Proc:0x0000563008c87010 /var/www/discourse/lib/post_revisor.rb:87>, :tags=>#<Proc:0x0000563008c867a0 /var/www/discourse/lib/post_revisor.rb:103>, :featured_link=>#<Proc:0x0000563008c86700 /var/www/discourse/lib/post_revisor.rb:129>}
إعجاب واحد (1)

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

من الممكن أن تكون هناك مشاكل أخرى، لذلك سأترك هذا الموضوع مفتوحًا لبضعة أسابيع أخرى. يرجى إبلاغي إذا كنت لا تزال ترى مشاكل في تحميل المراجعات.

6 إعجابات