مرحباً بفريق Discourse،
شكراً لكم على تقديم منتج رائع! لقد استمتعت أنا ومجتمعي باستخدامه لسنوات. مؤخراً، واجهنا مشكلة، وسأكون ممتناً جداً لأي مساعدة.
بعد الترقية من Discourse 3.3.0 إلى 3.4.0، يرى المستخدمون الجدد صفحة فارغة (رأس وتذييل فقط) عند النقر على رابط التحقق من البريد الإلكتروني للوصول إلى صفحة “activate-account”.
(سيتم توفير رابط الاختبار في نهاية هذه المقالة)
الخطوات المتخذة حتى الآن:
فحص وحدة تحكم المطور : يشير الخطأ إلى أن CSP يمنع البرامج النصية الخارجية.
محاولة تعديل CSP عبر Cloudflare :
تم تعديل السياسة ومسح ذاكرة التخزين المؤقت، لكن ذلك لم يحل المشكلة.
محاولة تعديل CSP عبر لوحة تحكم Discourse الإدارية : تمت إضافة ‘self’ و ‘unsafe-eval’ ومحاولة تجزئة SHA256. كما أشرنا إلى هذه المقالة ولكن لم نلاحظ أي تغيير.
رسالة الخطأ:
تمت تجربة مدخلات مختلفة (مثل ‘self’ و ‘unsafe-eval’) وحتى تعيين السياسة إلى وضع “التقرير فقط”. ومع ذلك، لم يكن هناك أي تأثير.
مسح ذاكرة التخزين المؤقت : لم يحدث تغيير.
إعادة بناء التطبيق : تمت إعادة بناء Discourse ومسح ذاكرة التخزين المؤقت بعد ذلك، لكن المشكلة لا تزال قائمة.
من المثير للاهتمام أن هذه المشكلة لا تؤثر على كل مستخدم جديد. وجدنا أن حوالي 90٪ من مستخدمينا الجدد يواجهون هذه المشكلة.
نرحب بأي اقتراحات أو حلول! شكراً لكم!
@pfaffman
حاولت للتو ورأيت هذا:
simon
21 سبتمبر 2024، 8:35م
4
هناك موقع آخر يبلغ عن أخطاء CSP متعلقة بنقطة النهاية /cdn-cgi/speculation: Refused to load the script 'site.com/cdn-cgi/speculation' because it violates the following Content Security Policy directive - #2 by simon . لست على علم بمشاكل مماثلة تم الإبلاغ عنها في الماضي. ربما تغير شيء ما إما في Cloudflare أو في Discourse 3.4.0.
تتم إضافة نقطة النهاية /cdn-cgi/speculation إلى النطاقات المسجلة على Cloudflare عند تمكين ميزة “Speed Brain”. تهدف Speed Brain إلى تسريع أداء موقع الويب من خلال السماح لـ Cloudflare بجلب المحتوى مسبقًا عندما يحوم المستخدم فوق رابط. لست متأكدًا من توافق هذا مع Discourse.
أرى أن رأس Speculation-Rules يتم إرجاعه مع الاستجابة عند زيارة https://community.lezismore.org/login. هذا يشير إلى تمكين ميزة Speed Brain. من وثائق Cloudflare، يبدو أنها ممكّنة افتراضيًا.
هل يمكنك محاولة تعطيل Speed Brain من علامة التبويب Speed في لوحة تحكم Cloudflare الخاصة بك؟ التعليمات حول كيفية القيام بذلك موجودة هنا: Speed Brain · Cloudflare Speed docs .
يقول قسم “التحذيرات” في الوثائق التي ربطتها:
إذا كانت Speed Brain متوافقة مع Discourse، فسيتعين علينا معرفة كيفية إضافتها إلى قواعد Content Security.
3 إعجابات
شكراً لردك.
لقد قمت بالفعل بتعطيل إعداد Speed Brain في Cloudflare ومسح ذاكرة التخزين المؤقت كما تم اقتراحه، ولكن للأسف، لا تزال المشكلة قائمة.
إليك رابط صفحة حساب الاختبار الجديد النشط اليوم، لمن يهتم: https://community.lezismore.org/users/activate-account/34180b9eed9e1a1a1dbcca7eab66fb43
simon
22 سبتمبر 2024، 8:27ص
6
هل يمكنك تسجيل الدخول إلى الموقع؟ إذا كان الأمر كذلك، فهل ترى أي رسائل خطأ في صفحة سجلات الأخطاء الخاصة به (https://community.lezismore.org/logs )؟
إعجاب واحد (1)
نعم، يمكنني تسجيل الدخول إلى الموقع.
هذه صفحة السجل:
Job exception: can't write unknown attribute
والتفاصيل كالتالي:
Message (23685 copies reported)
Job exception: can't write unknown attribute
Backtrace
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activemodel-7.1.4/lib/active_model/attribute.rb:236:in `with_value_from_database'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activemodel-7.1.4/lib/active_model/attribute_set.rb:60:in `write_from_user'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/transactions.rb:435:in `restore_transaction_record_state'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/transactions.rb:345:in `rolledback!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:200:in `block in rollback_records'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:263:in `run_action_on_records'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:199:in `rollback_records'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:527:in `block in rollback_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:520:in `rollback_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:539:in `rescue in block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:538:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-7.1.4/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/transaction.rb:532:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/connection_adapters/abstract/database_statements.rb:344:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/transactions.rb:361:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.1.4/lib/active_record/persistence.rb:904:in `update!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_scheduler-0.17.0/lib/mini_scheduler/manager.rb:156:in `process_queue'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_scheduler-0.17.0/lib/mini_scheduler/manager.rb:77:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_scheduler-0.17.0/lib/mini_scheduler/manager.rb:63:in `block (2 levels) in ensure_worker_threads'
إعجاب واحد (1)
هناك بعض الأخطاء الأخرى التي لست متأكدًا مما إذا كانت ذات صلة، ولكني أقدمها على أي حال كمرجع، فقط في حالة.
Message
Job exception: PG::SyntaxError: ERROR: zero-length delimited identifier at or near ""
LINE 1: ...1506385, "success" = TRUE WHERE "scheduler_stats"." IS NULL
^
Backtrace
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract_adapter.rb:752:in `block in log'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract_adapter.rb:743:in `log'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:766:in `exec_no_cache'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:745:in `execute_and_clear'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql/database_statements.rb:67:in `exec_delete'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:175:in `update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:513:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:1060:in `_update_row'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/locking/optimistic.rb:93:in `_update_row'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:1082:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/attribute_methods/dirty.rb:216:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/callbacks.rb:463:in `block in _update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:99:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:929:in `_run_update_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/callbacks.rb:463:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/timestamp.rb:121:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:1069:in `create_or_update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/callbacks.rb:455:in `block in create_or_update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:99:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:929:in `_run_save_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/callbacks.rb:455:in `create_or_update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/timestamp.rb:126:in `create_or_update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:648:in `save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/validations.rb:53:in `save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:302:in `block in save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:314:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:302:in `save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/suppressor.rb:54:in `save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:782:in `block in update!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:780:in `update!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:134:in `process_queue'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:70:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:59:in `block (2 levels) in ensure_worker_threads'
شكر جزيل لكل من يرغب في المساعدة
إعجاب واحد (1)
simon
23 سبتمبر 2024، 6:22ص
9
بالنظر إلى التفاصيل التي قدمتها، ليس من الواضح لي أين يتم تشغيل الخطأ في كود Discourse. هل هناك أي تفاصيل في علامات التبويب “info” أو “env” في صفحة الخطأ؟ يوجد أيضًا زر “share” في أسفل يمين الصفحة سيعرض جميع تفاصيل الخطأ.
لست متأكدًا من أن الخطأ متعلق بالمشكلة، ولكن يبدو أن هناك خطأ ما يحدث مع المهام الخلفية (sidekiq) على موقعك.
قد تكون هناك أيضًا معلومات مفيدة في صفحة /sidekiq الخاصة بموقعك. بصفتك مستخدمًا إداريًا، يمكنك عرضها على https://community.lezismore.org/sidekiq
3 إعجابات
th21
23 سبتمبر 2024، 4:48م
10
لقد تحققت من موقعك الإلكتروني وهو باللغة الصينية التقليدية، ربما تواجه نفس الموقف الذي واجهته
3 إعجابات
يبدو أننا كنا نواجه نفس المشكلة! بعد تحديث رابط صفحة التنشيط في قالب البريد الإلكتروني من:
%{base_url}/user/activate-account/%{email_token}
إلى:
%{base_url}/u/activate-account/%{email_token}
بدأ كل شيء في العمل بشكل جيد. من المحتمل أن تكون المشكلة قد حدثت لأن قالب البريد الإلكتروني لم يتم تحديثه تلقائيًا بسبب تخصيصاتي السابقة، مما منع تطبيق التغييرات بعد إعادة بناء التطبيق.
شكر كبير لـ @simon على صبره المذهل في مساعدتي خلال عملية التصحيح، ولـ @th21 على المعلومات!
سأواصل مراقبة أداء التطبيق وسأشارك التحديثات إذا ظهرت أي مشاكل. مرة أخرى، شكراً لكم يا رفاق!
3 إعجابات
system
(system)
تم إغلاقه في
24 أكتوبر 2024، 5:52م
12
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.