Hola,
Acabamos de empezar a usar avatar_url a través de DiscourseConnect. La anulación de avatar está habilitada y la actualización forzada de avatar está configurada en true en el lado del SSO.
El inicio de sesión funciona como se esperaba, pero los avatares no se sincronizan. Al habilitar el modo detallado (verbose) para el inicio de sesión SSO, se muestran todos los parámetros correctos, pero siempre recibimos un error de Jobs::DownloadAvatarFromUrl que indica: “Job exception: execution expired”.
No sé qué podría estar causando esto. Lo probé en una instancia local de Discourse y funcionó sin problemas (es decir, los avatares se descargaron sin inconvenientes).
¿Alguna idea sobre cómo solucionarlo o qué podría estar causando esto?
Versión actual de Discourse: 2.8.0.beta1
Entorno:
hostname docker-app
process_id 127
application_version 96fd202d9cdac98196abd952c53f583b4af9d8f2
current_db default
current_hostname *nombre de host correcto*
job Jobs::DownloadAvatarFromUrl
problem_db default
time 10:58 am
opts
url *URL correcta*
user_id *ID de usuario correcto*
override_gravatar true
current_site_id default
Rastreo de la pila (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'
Edición: Hay suficiente RAM y espacio en disco. Ya lo verifiqué.
Edición 2: En realidad, podría ser un problema de memoria. No noté la diferencia entre la memoria de la máquina anfitriona y la memoria asignada a Discourse. Actualmente solo tenemos configurados 512 MB en nuestro app.yml, aunque todavía debo verificar que eso sea la causa.