Hola @david,
¿El uso de memoria disminuye tan pronto como termina la tarea
assets:build?
No. Investigué más a fondo y hay algo extraño.
Antes de ejecutar precompiling:build, esta es la lista de plugins:
/var/www/discourse$ ls plugins/
automation discourse-akismet discourse-data-explorer discourse-hcaptcha discourse-microsoft-auth discourse-post-voting discourse-saved-searches discourse-user-notes styleguide
chat discourse-apple-auth discourse-details discourse-lazy-videos discourse-narrative-bot discourse-presence discourse-solved discourse-zendesk-plugin
checklist discourse-assign discourse-docs discourse-local-dates discourse-oauth2-basic discourse-prometheus discourse-subscriptions footnote
discourse-adplugin discourse-cakeday discourse-gamification discourse-login-with-amazon discourse-openid-connect discourse-reactions discourse-templates msgraph-poll-discourse-plugin
discourse-affiliate discourse-calendar discourse-github discourse-lti discourse-patreon discourse-rewind discourse-topic-trade-buttons poll
discourse-ai discourse-chat-integration discourse-graphviz discourse-math discourse-policy discourse-rss-polling discourse-topic-voting spoiler-alert
He notado el siguiente comportamiento después de depurar el código.
/var/www/discourse$ script/rails runner "AssetProcessor.ember_version"
Plugin name is 'msgraph-polling', but plugin directory is named 'msgraph-poll-discourse-plugin'
# se cuelga aquí para siempre
AssetProcessor.ember_version corresponde a la línea discourse/lib/plugin/js_manager.rb at latest · discourse/discourse · GitHub.
Así que hice algunas modificaciones en este archivo (adjunto), básicamente para imprimir dónde se queda atascado mientras procesa, y para eliminar AssetProcessor.ember_version en discourse/lib/plugin/js_manager.rb at latest · discourse/discourse · GitHub, simplemente poniendo 5 para continuar con la generación del hash hexadecimal.
Luego, reduje el paralelismo a 1 para facilitar las cosas en discourse/lib/plugin/js_manager.rb at latest · discourse/discourse · GitHub (parallel_count = [Etc.nprocessors, 1].min).
Después de esto, ejecuté bundle exec rake assets:precompile:build, obteniendo el siguiente resultado:
/var/www/discourse$ bundle exec rake assets:precompile:build
Plugin name is 'msgraph-polling', but plugin directory is named 'msgraph-poll-discourse-plugin'
[assemble_ember_build] Reutilizando la compilación central de Ember existente. Todo listo.
Plugin name is 'msgraph-polling', but plugin directory is named 'msgraph-poll-discourse-plugin'
[Plugin::JsManager] Compilando 49 plugins...
Compilando automation...
fin de files.sort
fin de files.sort
hex_digest 103dc9ebebb80a7065cb8dd41fb3356b30f151f7
########### recursivo
# se cuelga aquí para siempre, consumiendo toda la memoria
Sospecho que esto puede estar relacionado con el valor de ulimit (que tenemos configurado como unlimited en lugar de algo como ulimit -n 1048576;), dado que se abren un número considerable de archivos y se almacena su contenido en memoria (mediante las llamadas recursivas).
Avísame si esto te suena familiar o si tienes alguna otra pista sobre cuál podría ser el problema.
Saludos,
Ismael
js_manager.rb.txt (7.7 KB)