Hola,
Administro una instalación de Discourse autoalojada (2026.5.0-latest). Hoy intenté activar YJIT. Añadí "templates/enable-ruby-yjit.yml" a containers/app.yml y reconstruí la aplicación.
Una vez finalizada la reconstrucción, ocurrió algo interesante. Dentro del contenedor Docker, ejecuté env | grep RUBY_YJIT_ENABLE y obtuve RUBY_YJIT_ENABLE=1. Hasta ahí todo bien. Pero luego ejecuté sudo -u discourse RAILS_ENV=production bundle exec rails runner 'puts "YJIT enabled: #{RubyVM::YJIT.enabled?}"; puts RUBY_DESCRIPTION'… y obtuve:
YJIT enabled: false
ruby 3.4.7 (2025-10-08 revision 7a5688e2a2) +PRISM [x86_64-linux]
Por lo tanto, YJIT no se activó, a pesar de haber añadido la plantilla enable-ruby-yjit.yml. Entonces, cuando ejecuté sudo -u discourse RAILS_ENV=production bundle exec rails runner 'puts "GlobalSetting.yjit_enabled=#{GlobalSetting.yjit_enabled}"', obtuve GlobalSetting.yjit_enabled= — ¡un valor nulo!
En cualquier caso, después de experimentar un poco más con ello, finalmente logré activar YJIT añadiendo lo siguiente a containers/app.yml:
env:
DISCOURSE_YJIT_ENABLED: true
Estoy seguro de que hay un error en algún lugar (GlobalSetting.yjit_enabled no debería devolver nunca nil), pero establecer la variable de entorno funcionó, y espero que alguien que busque esto en Google encuentre este tema.