Ciao @david,
L’utilizzo della memoria diminuisce non appena l’attività
assets:buildè completata?
No. Ho scavato più a fondo e c’è qualcosa di strano.
Prima di eseguire precompiling:build, ecco l’elenco dei plugin:
/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
Ho notato il seguente comportamento dopo aver eseguito il debug del codice.
/var/www/discourse$ script/rails runner "AssetProcessor.ember_version"
Il nome del plugin è 'msgraph-polling', ma la directory del plugin è denominata 'msgraph-poll-discourse-plugin'
# si blocca qui per sempre
AssetProcessor.ember_version corrisponde alla riga discourse/lib/plugin/js_manager.rb at latest · discourse/discourse · GitHub
Quindi ho apportato alcune modifiche a questo file (allegato), principalmente per stampare dove si blocca durante l’elaborazione e per rimuovere AssetProcessor.ember_version in discourse/lib/plugin/js_manager.rb at latest · discourse/discourse · GitHub, inserendo semplicemente 5 per continuare la generazione dell’hex.
Poi, ho ridotto il parallelismo a 1 per semplificare le cose in discourse/lib/plugin/js_manager.rb at latest · discourse/discourse · GitHub (parallel_count = [Etc.nprocessors, 1].min).
Dopo ciò, ho eseguito bundle exec rake assets:precompile:build, ottenendo il seguente risultato:
/var/www/discourse$ bundle exec rake assets:precompile:build
Il nome del plugin è 'msgraph-polling', ma la directory del plugin è denominata 'msgraph-poll-discourse-plugin'
[assemble_ember_build] Riutilizzo della build core di Ember esistente. Tutto fatto.
Il nome del plugin è 'msgraph-polling', ma la directory del plugin è denominata 'msgraph-poll-discourse-plugin'
[Plugin::JsManager] Compilazione di 49 plugin...
Compilazione di automation...
fine dei file.sort
fine dei file.sort
hex_digest 103dc9ebebb80a7065cb8dd41fb3356b30f151f7
########### ricorsivo
# si blocca qui per sempre, consumando tutta la memoria
Sospetto che possa essere correlato al valore ulimit (che abbiamo impostato su unlimited invece di qualcosa come ulimit -n 1048576;), dato che si aprono un numero piuttosto elevato di file e se ne memorizza il contenuto in memoria (tramite le chiamate ricorsive).
Fammi sapere se questo ti suona familiare o se hai altri indizi su quale possa essere il problema.
Ciao,
Ismael
js_manager.rb.txt (7.7 KB)