مرحباً،
بدأنا للتو في استخدام avatar_url عبر discourseconnect. تم تمكين تجاوز الصورة الرمزية (Override avatar)، وتم تعيين تحديث الصورة الرمزية القسري (force avatar update) على “true” في جانب SSO.
تعمل عملية تسجيل الدخول كما هو متوقع، لكن الصور الرمزية لا تتم مزامنتها. عند تمكين وضع التفصيل (verbose) لتسجيل دخول SSO، تظهر جميع المعاملات الصحيحة، لكننا نحصل دائماً على خطأ من Jobs::DownloadAvatarFromUrl يقول: “Job exception: execution expired”.
لا أعرف ما الذي قد يسبب ذلك. جربت الأمر على نسخة Discourse محلية وعمل دون أي مشاكل (أي أن الصور الرمزية تم تحميلها دون عوائق).
هل لديكم أي أفكار حول كيفية إصلاح ذلك أو ما الذي يسببه؟
إصدار Discourse الحالي: 2.8.0.beta1
البيئة:
hostname docker-app
process_id 127
application_version 96fd202d9cdac98196abd952c53f583b4af9d8f2
current_db default
current_hostname *correct hostname*
job Jobs::DownloadAvatarFromUrl
problem_db default
time 10:58 am
opts
url *correct url*
user_id *correct user id*
override_gravatar true
current_site_id default
مسار التتبع (backtrace):
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `initialize'
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `open'
/usr/local/lib/ruby/2.7.0/net/http.rb:960:in `block in connect'
/usr/local/lib/ruby/2.7.0/timeout.rb:105:in `timeout'
/usr/local/lib/ruby/2.7.0/net/http.rb:958:in `connect'
/usr/local/lib/ruby/2.7.0/net/http.rb:943:in `do_start'
/usr/local/lib/ruby/2.7.0/net/http.rb:932:in `start'
/usr/local/lib/ruby/2.7.0/net/http.rb:606:in `start'
/var/www/discourse/lib/final_destination.rb:443:in `safe_session'
/var/www/discourse/lib/final_destination.rb:394:in `safe_get'
/var/www/discourse/lib/final_destination.rb:133:in `get'
/var/www/discourse/lib/file_helper.rb:56:in `download'
/var/www/discourse/app/models/user_avatar.rb:98:in `import_url_for_user'
/var/www/discourse/app/jobs/regular/download_avatar_from_url.rb:18:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-3.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
sidekiq-6.2.1/lib/sidekiq/processor.rb:196:in `execute_job'
sidekiq-6.2.1/lib/sidekiq/processor.rb:164:in `block (2 levels) in process'
sidekiq-6.2.1/lib/sidekiq/middleware/chain.rb:138:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:138:in `call'
sidekiq-6.2.1/lib/sidekiq/middleware/chain.rb:140:in `block in invoke'
sidekiq-6.2.1/lib/sidekiq/middleware/chain.rb:143:in `invoke'
sidekiq-6.2.1/lib/sidekiq/processor.rb:163:in `block in process'
sidekiq-6.2.1/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq/job_retry.rb:112:in `local'
sidekiq-6.2.1/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq.rb:38:in `block in <module:Sidekiq>'
sidekiq-6.2.1/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq/processor.rb:257:in `stats'
sidekiq-6.2.1/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq/job_logger.rb:13:in `call'
sidekiq-6.2.1/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
sidekiq-6.2.1/lib/sidekiq/job_retry.rb:79:in `global'
sidekiq-6.2.1/lib/sidekiq/processor.rb:124:in `block in dispatch'
sidekiq-6.2.1/lib/sidekiq/logger.rb:11:in `with'
sidekiq-6.2.1/lib/sidekiq/job_logger.rb:33:in `prepare'
sidekiq-6.2.1/lib/sidekiq/processor.rb:123:in `dispatch'
sidekiq-6.2.1/lib/sidekiq/processor.rb:162:in `process'
sidekiq-6.2.1/lib/sidekiq/processor.rb:78:in `process_one'
sidekiq-6.2.1/lib/sidekiq/processor.rb:68:in `run'
sidekiq-6.2.1/lib/sidekiq/util.rb:43:in `watchdog'
sidekiq-6.2.1/lib/sidekiq/util.rb:52:in `block in safe_thread'
تعديل: يوجد ذاكرة RAM ومساحة قرص كافية. لقد تحققت من ذلك بالفعل.
تعديل 2: قد يكون الأمر في الواقع مشكلة ذاكرة. لم ألاحظ الفرق بين الذاكرة على جهاز المضيف والذاكرة المخصصة لـ Discourse. حاليًا، لدينا فقط 512 ميجابايت مضبوطة في ملف app.yml، رغم أنني ما زلت بحاجة للتحقق مما إذا كان هذا هو السبب.