خطأ 502 / مهلة Unicorn في صفحة Rewind للمستخدمين النشطين جداً

مرحباً :waving_hand:

نحن نواجه مشكلة في إضافة Discourse Rewind. بالنسبة لبعض مستخدمينا الأكثر نشاطًا، تفشل صفحة Rewind في التحميل وتعرض خطأ 502.

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

خطأ في وحدة التحكم:

تحذير في السجلات:

Message

Unicorn worker received USR2 signal indicating it is about to timeout, dumping backtrace for main thread
config/unicorn.conf.rb:204:in `backtrace'
config/unicorn.conf.rb:204:in `block (2 levels) in reload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:112:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/db/pg/alias_method.rb:112:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.4/lib/active_record/connection_adapters/postgresql/database_statements.rb:167:in `perform_query'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.4/lib/active_record/connection_adapters/abstract/database_statements.rb:556:in `block (2 levels) in raw_execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.4/lib/active_record/connection_adapters/abstract_adapter.rb:1017:in `block in with_raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/concurrency/null_lock.rb:9:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.4/lib/active_record/connection_adapters/abstract_adapter.rb:986:in `with_raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.4/lib/active_record/connection_adapters/abstract/database_statements.rb:555:in `block in raw_execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/notifications/instrumenter.rb:58:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.4/lib/active_record/connection_adapters/abstract_adapter.rb:1137:in `log'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.4/lib/active_record/connection_adapters/abstract/database_statements.rb:554:in `raw_execute'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-8.0.4/lib/active_record/connection_adapters/abstract/database_statements.rb:591:in `...

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:218:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:217:in `map'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:217:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.4/lib/active_support/broadcast_logger.rb:129:in `warn'
/var/www/discourse/lib/signal_trap_logger.rb:40:in `public_send'
/var/www/discourse/lib/signal_trap_logger.rb:40:in `block (2 levels) in ensure_logging_thread_running'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
3 إعجابات

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

إعجابَين (2)

بالتأكيد، إليك بعض الإحصائيات لاثنين من المستخدمين المتأثرين:

المستخدم 1

  • المنشورات التي تم إنشاؤها: 11,709
  • ردود الفعل المُعطاة: 41,569
  • ردود الفعل المُستلمة: 74,603

المستخدم 2

  • المنشورات التي تم إنشاؤها: 5,959
  • ردود الفعل المُعطاة: 37,974
  • ردود الفعل المُستلمة: 38,875

كلا المستخدمين يثيران خطأ 502، مما يشير إلى أن حد المهلة الزمنية يتم الوصول إليه حتى مع النشاط المنخفض نسبيًا (ولكنه لا يزال مرتفعًا) للمستخدم 2.

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

شكراً جزيلاً يا دون، سيقوم شخص ما بالاطلاع على الأمر خلال الأسبوعين القادمين.

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

أعتقد أن هذا الإصلاح سيساعد:

3 إعجابات