500 خطأ داخلي في الخادم عند الموافقة على المنشور المعلق

ظهور خطأ 500 Internal Server Error في الإصدار 2.9.0.beta4

سجل الخطأ يقرأ:

RuntimeError (مطلوب اتصال بوابة لاستدعاء هذه الطريقة! سيتعين عليك القيام بذلك داخل أي حدث (مثل `ready`) أو بعد `bot.run :async`.)
lib/post_creator.rb:611:in `update_user_counts'
lib/post_creator.rb:215:in `block in create'
lib/post_creator.rb:409:in `block (2 levels) in transaction'
lib/post_creator.rb:408:in `block in transaction'
lib/distributed_mutex.rb:33:in `block in synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:29:in `synchronize'
lib/distributed_mutex.rb:14:in `synchronize'
lib/post_creator.rb:407:in `transaction'
lib/post_creator.rb:205:in `create'
app/models/reviewable_queued_post.rb:77:in `perform_approve_post'
app/models/reviewable.rb:357:in `public_send'
app/models/reviewable.rb:357:in `block in perform'
app/models/reviewable.rb:355:in `perform'
app/controllers/reviewables_controller.rb:200:in `perform'
app/controllers/application_controller.rb:404:in `block in with_resolved_locale'
app/controllers/application_controller.rb:404: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/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

discordrb (3.3.0) lib/discordrb/bot.rb:673:in `gateway_check'
discordrb (3.3.0) lib/discordrb/bot.rb:156:in `servers'
plugins/discourse-discord-sync/lib/utils.rb:72:in `sync_user'
plugins/discourse-discord-sync/plugin.rb:42:in `block (3 levels) in activate!'
activesupport (6.1.4.7) lib/active_support/callbacks.rb:427:in `instance_exec'
activesupport (6.1.4.7) lib/active_support/callbacks.rb:427:in `block in make_lambda'
activesupport (6.1.4.7) lib/active_support/callbacks.rb:235:in `block in halting_and_conditional'
activesupport (6.1.4.7) lib/active_support/callbacks.rb:516:in `block in invoke_after'
activesupport (6.1.4.7) lib/active_support/callbacks.rb:516:in `each'
activesupport (6.1.4.7) lib/active_support/callbacks.rb:516:in `invoke_after'

بيئة التشغيل

HTTP HOSTS: تمت إزالته بواسطة

إذًا، يتعطل بسبب وجود خادم Discord تتم المزامنة معه ولا يمكن الوصول إليه، والمكون الإضافي لا يتعامل مع هذا الأمر بسلاسة.

بالنظر إلى كود المكون الإضافي، أرى أنه لا يقوم بذلك أيضًا كوظيفة غير متزامنة، أي أن الحفظ لا يكتمل قبل أن يصل Discourse إلى خوادم Discord. إذا تم تنفيذ هذا كوظيفة غير متزامنة، فيمكنه أيضًا إعادة المحاولة تلقائيًا في حالة فشل خادم Discord. @barreeeiroo

إعجابَين (2)