المستخدمون الجدد لا يمكنهم التسجيل، أخطاء 404 في الـ console

حسنًا، الآن لست متأكدًا بعد.

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

في غضون عشر دقائق، سجلت 10 أخطاء لكل واحد من المسارات الخلفية الثلاثة التالية:

1:

رسالة (تم الإبلاغ عن 10 نسخ)

استثناء الوظيفة: لا يمكن تخصيص خيط (thread)

المسار الخلفي

/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'Thread.new'
/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'block in Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Array#map'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:661:in 'Socket.tcp'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:122:in 'RedisClient::RubyConnection#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:48:in 'RedisClient::RubyConnection#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'Class#new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'block in RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/middlewares.rb:12:in 'RedisClient::BasicMiddleware#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:814:in 'RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:800:in 'RedisClient#raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:759:in 'RedisClient#ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:352:in 'RedisClient#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/client.rb:90:in 'Redis::Client#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in 'block in Redis::Client#profile_method'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:152:in 'block in Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Monitor#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/commands/keys.rb:280:in 'Redis::Commands::Keys#exists?'
/var/www/discourse/lib/discourse_redis.rb:156:in 'block in DiscourseRedis#exists?'
/var/www/discourse/lib/discourse_redis.rb:29:in 'DiscourseRedis.ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:156:in 'DiscourseRedis#exists?'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:303:in 'MiniScheduler::Manager#repair_queue'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:46:in 'MiniScheduler::Manager::Runner#repair_queue'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:21:in 'block (2 levels) in MiniScheduler::Manager::Runner#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'Thread::Mutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'block in MiniScheduler::Manager::Runner#initialize'

2:

رسالة (تم الإبلاغ عن 10 نسخ)

استثناء الوظيفة: لا يمكن تخصيص خيط (thread)

المسار الخلفي

/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'Thread.new'
/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'block in Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Array#map'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:661:in 'Socket.tcp'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:122:in 'RedisClient::RubyConnection#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:48:in 'RedisClient::RubyConnection#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'Class#new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'block in RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/middlewares.rb:12:in 'RedisClient::BasicMiddleware#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:814:in 'RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:800:in 'RedisClient#raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:759:in 'RedisClient#ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:352:in 'RedisClient#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/client.rb:90:in 'Redis::Client#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in 'block in Redis::Client#profile_method'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:152:in 'block in Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Monitor#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/commands/keys.rb:256:in 'Redis::Commands::Keys#del'
/var/www/discourse/lib/discourse_redis.rb:168:in 'block in DiscourseRedis#del'
/var/www/discourse/lib/discourse_redis.rb:29:in 'DiscourseRedis.ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:165:in 'DiscourseRedis#del'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:48:in 'MiniScheduler::DistributedMutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:15:in 'MiniScheduler::DistributedMutex.synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:365:in 'MiniScheduler::Manager#lock'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:273:in 'MiniScheduler::Manager#reschedule_orphans!'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:52:in 'MiniScheduler::Manager::Runner#reschedule_orphans'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:22:in 'block (2 levels) in MiniScheduler::Manager::Runner#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'Thread::Mutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'block in MiniScheduler::Manager::Runner#initialize'

3:

رسالة (تم الإبلاغ عن 10 نسخ)

استثناء الوظيفة: لا يمكن تخصيص خيط (thread)

المسار الخلفي

/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in 'Thread.new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in 'block in MiniScheduler::Manager::Runner#ensure_worker_threads'
<internal:numeric>:257:in 'Integer#times'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:63:in 'MiniScheduler::Manager::Runner#ensure_worker_threads'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:23:in 'block (2 levels) in MiniScheduler::Manager::Runner#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'Thread::Mutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:20:in 'block in MiniScheduler::Manager::Runner#initialize'

و585 خطأ من هذا النوع في 10 دقائق:

رسالة (تم الإبلاغ عن 585 نسخة)

استثناء الوظيفة: لا يمكن تخصيص خيط (thread)

المسار الخلفي

/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'Thread.new'
/usr/local/lib/ruby/3.4.0/socket.rb:712:in 'block in Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Array#map'
/usr/local/lib/ruby/3.4.0/socket.rb:710:in 'Socket.tcp_with_fast_fallback'
/usr/local/lib/ruby/3.4.0/socket.rb:661:in 'Socket.tcp'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:122:in 'RedisClient::RubyConnection#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/ruby_connection.rb:48:in 'RedisClient::RubyConnection#initialize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'Class#new'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:815:in 'block in RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client/middlewares.rb:12:in 'RedisClient::BasicMiddleware#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:814:in 'RedisClient#connect'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:800:in 'RedisClient#raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:759:in 'RedisClient#ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-client-0.26.1/lib/redis_client.rb:352:in 'RedisClient#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/client.rb:90:in 'Redis::Client#call_v'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in 'block in Redis::Client#profile_method'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:152:in 'block in Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Monitor#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis.rb:151:in 'Redis#send_command'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/redis-5.4.0/lib/redis/commands/keys.rb:256:in 'Redis::Commands::Keys#del'
/var/www/discourse/lib/discourse_redis.rb:168:in 'block in DiscourseRedis#del'
/var/www/discourse/lib/discourse_redis.rb:29:in 'DiscourseRedis.ignore_readonly'
/var/www/discourse/lib/discourse_redis.rb:165:in 'DiscourseRedis#del'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:48:in 'MiniScheduler::DistributedMutex#synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/distributed_mutex.rb:15:in 'MiniScheduler::DistributedMutex.synchronize'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:365:in 'MiniScheduler::Manager#lock'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler/manager.rb:316:in 'MiniScheduler::Manager#tick'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/mini_scheduler-0.18.0/lib/mini_scheduler.rb:74:in 'block (2 levels) in MiniScheduler.start'

المكونات الإضافية الوحيدة غير الأساسية المثبتة لدي هي بصمة الإصبع (Fingerprint) (تم تعطيلها الآن)، واسم الموظف المستعار (Staff Alias)، و Always-Anonymous Categories Plugin . أما المكونات الإضافية المفعلة الأخرى فهي جميعها من النسخة الأساسية (core).

مكونات السمة (theme components) الخاصة بي هي:

  • أشرطة التصنيفات (Category banners) (Category Banners)
  • المواضيع القابلة للنقر (Clickable topics) (Clickable Topic)
  • التصنيفات الملونة (Colorful categories) (Colorful Categories)
  • حجم وشكل الصورة الرمزية (Avatar size and shape) (Avatar Size and Shape)
  • فلاتر المفضلة (Favorite Filters) (Filter Favorites)
  • زر بصمة الإصبع (Fingerprint button) (Fingerprint Button)
  • شريط التقدم (Progress Bar) (Progress Bar)
  • تبديل السمة في الشريط الجانبي (Sidebar theme toggle) (Sidebar Theme Toggle)
  • أشرطة الوسوم (Tag banners) (Tag Banners)
  • مقتطفات قائمة المواضيع (Topic list excerpt) (Topic List Excerpts)
  • ومكون سمة مخصص صغير يقوم بتزيين العناصر المطبوخة (cooked elements)

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

ليس لدي أي فكرة عما يحدث. قمت بتعطيل كل مكون سمة وإضافة وما زلت أحصل على نفس الأخطاء في /logs ويكون لدى المستخدمين المجهولين أخطاء في المتصفح 404 لـ /assets/detect.map و /assets/vendor.map و /assets/start-discourse.map و /assets/browser-update.map. ما زلت لا أستطيع إنشاء مستخدم جديد.

لقد تمكنت للتو من إنشاء حساب جديد عبر مُعرّف ديسكورس (Discourse ID)، دون مشاكل.

تسجيل الخروج ثم تسجيل الدخول مرة أخرى يعمل مرة أخرى، دون مشاكل.

لا توجد أخطاء في وحدة التحكم (console):

يبدو أن أي تغييرات أجريتها قد نجحت؟

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

هذه الأخطاء من sidekiq (مُجدول المهام) وتشير إلى نوع من المشاكل على مستوى النظام، وليس على مستوى البرنامج.

هل هناك حدود لعدد الخيوط (threads)؟ الملفات المفتوحة؟ هل ذاكرة الوصول العشوائي (RAM) محدودة؟ كم عدد خيوط يونيكورن (unicorn threads) التي تقوم بتشغيلها؟

هل أنشأت ملف تبديل (swapfile)؟

هل قمت بتهيئة تنزيلات قاعدة بيانات MaxMind DB؟

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

[quote=“asc, post:22, topic:397895”]الإضافات الوحيدة غير الأساسية التي قمت بتثبيتها هي Fingerprint (تم تعطيلها الآن)، و Staff Alias، و Always-Anonymous Categories Plugin. أما الإضافات الأخرى المُمكّنة لدي فهي جميعها من الأساسيات.

[/quote]

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

يمكنك فعل الشيء نفسه مع مكونات الثيم (theme components)، ولكن كما ذكرت، لا يبدو أنها تتفاعل مع عمليات تسجيل الدخول.

لم أرَ أي مستخدمين جدد في لوحة تحكم المسؤول منذ آخر مستخدم قمت بإنشائه، هل قمت بحذفه؟

لقد قمت للتو بتشغيل التثبيت الافتراضي المكون من سطر واحد عبر وحدة التحكم على قطرة (droplet) بسعة 1 جيجابايت من DigitalOcean (DO) ولم أغير أي شيء آخر بخلاف ما ورد في معالج إعداد Discourse/لوحة تحكم المسؤول. القطرة الخاصة بي هي
1 جيجابايت / قرص 25 جيجابايت / Ubuntu 24.04 (LTS) x64. استخدام الذاكرة مرتفع باستمرار، حوالي 60-75٪، هل يجب أن أقوم بترقية إلى قطرة بذاكرة أكبر؟

لقد اتبعت للتو تعليمات التثبيت السحابي الأساسية الموجودة في discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub ولم ألمس أي شيء بخلاف إضافة المكونات الإضافية (plugins) إلى ملف app.yml وإعادة البناء.

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

:صوت موافقة: أحاول ذلك الآن

إزالة Fingerprint من ملف app.yml أوقف جميع الأخطاء وحل مشكلة تسجيل الدخول، شكراً جزيلاً.