Activar YJIT mediante Template no funciona

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.

1 me gusta