メモリ不足 killer によるブートストラップの失敗

その後、内部で反復して改善できるように、機能フラグの背後に配置するのが良いかもしれません。

「いいね!」 3

reverted され、コミットは tests-passed ブランチに反映されました:

ご連絡いただきありがとうございます。ご迷惑をおかけして申し訳ございません。

「いいね!」 7

このリバートが OP の問題も解決したかどうか、ぜひお聞きしたいです。OP (@devnull) は以下のようなエラーを報告しました。

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

これは @pfaffman からは報告されていません。

また、以下についてコメントさせてください。

RAM を増やすことでパフォーマンスが向上することはありますが、実際にメモリ不足が発生している場合、重要なのは RAM とスワップの合計容量です。スワップを増やしてもメモリ不足の問題が解消されないなら、RAM を増やしても同様に効果はありません。

@weallwegot が報告しているように、スワップ領域を 4G 増やしてもエラーが解消されない場合、何か(あるいは何かしらのプロセスが)非常に大量のメモリを消費している(していた)ことになります。

「いいね!」 2

同じエラーです。バックトレースを読むと、4 行目に OOM(メモリ不足)への参照があります。

「いいね!」 3

その通りです。彼は 1GB 未満の RAM しか持っていないため、容量が十分ではありません。仮にこの問題がなくても、RAM を増設することを推奨します。実際、2GB 未満の RAM を持つ人なら誰でも、RAM の増設を推奨しています。

「いいね!」 1

問題は私の方で解決しました。アプリの再構築が機能します。ご尽力いただき、誠にありがとうございます!

「いいね!」 3

(もちろん、アドバイスは理解しました。ただ、その論理が誤解を招く可能性があるように思えました。)

「いいね!」 2

ちなみに、両方のプラグインを使って問題なく再ビルドできました。ただ、今はスワップ領域が6GBあるので、完全に公平な比較とは言えませんね(笑)。

「いいね!」 4

ありがとうございます!また営業再開です。

「いいね!」 6

参考までに、その変更を再度マージしました。今回は Bootstrap が壊れないはずです。問題が発生するようであれば、お知らせください。

「いいね!」 2

@pfaffman さんが説明したのと同じ種類のエラーが、今まさに bootstrap で発生しました。theme_test_helper における構文エラーです。追加情報が必要であればお知らせください。

「いいね!」 1

エラーをここにコピー&ペーストしていただけますか?また、theme_test_helpertheme_test_vendor の圧縮に関する出力行も以下のように表示されているはずです。

12825804.271282336 Compressing: discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js
gzip -f -c -9 /var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js > /var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js.gz

brotli -f --quality=11 /var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js --output=/var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js.br
Done compressing discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js : 6.85 secs
6061451.556507351 圧縮中: discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js
uglifyjs '/var/www/discourse/public/assets/discourse/tests/_theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js' -m -c -o '/var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js' --source-map "base='/var/www/discourse/public/assets/discourse/tests',root='/assets/discourse/tests',url='/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js.map'"
パースエラー: _theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js:27883,17
define("sinon", () => {
                 ^
エラー: 予期しないトークン: punc «)»
    at JS_Parse_Error.get (eval at <anonymous> (/usr/lib/node_modules/uglify-js/tools/node.js:18:1), <anonymous>:71:23)
    at fatal (/usr/lib/node_modules/uglify-js/bin/uglifyjs:409:27)
    at run (/usr/lib/node_modules/uglify-js/bin/uglifyjs:347:9)
    at Object.<anonymous> (/usr/lib/node_modules/uglify-js/bin/uglifyjs:261:5)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
rake が中断されました!
Errno::ENOENT: No such file or directory @ rb_file_s_size - /var/www/discourse/public/assets/discourse/tests/theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js
/var/www/discourse/lib/tasks/assets.rake:290:in `size'
/var/www/discourse/lib/tasks/assets.rake:290:in `block (4 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:181:in `block in concurrent?'
/var/www/discourse/lib/tasks/assets.rake:281:in `block (3 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:272:in `each'
/var/www/discourse/lib/tasks/assets.rake:272:in `block (2 levels) in <main>'
/var/www/discourse/lib/tasks/assets.rake:181:in `concurrent?'
/var/www/discourse/lib/tasks/assets.rake:269:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
タスク: TOP => assets:precompile
(詳細なトレースを確認するには、--trace オプションを付けてタスクを実行してください)

その後、当然ながら他のプラグイン、テーマコンポーネントなどを実行すると:

失敗
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' が #<Process::Status: pid 5128 exit 1> で終了しました
失敗場所: /pups/lib/pups/exec_command.rb:112:in `spawn'
以下のパラメータで実行に失敗しました: {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
29b7ee9f8297bdac0cc17dae6117ebe5aa94dcdf3f5dbfed4bf03b0bd7751cc0
** ブートストラップに失敗しました ** 上にスクロールして、以前のエラーメッセージを確認してください。複数のエラーが存在する可能性があります。
./discourse-doctor を実行すると問題の診断に役立つ場合があります。
「いいね!」 4

コンテナに入り、uglifyjs のバージョンを確認してください。

./launcher enter app
uglifyjs --version

また、ホストマシン上の discourse_docker についても確認してください。

git rev-parse HEAD
「いいね!」 5

@Osama @downey

数時間前にベースイメージを更新し、2015 年の JavaScript を正しくコンパイルできるよう新しいベースイメージを強制適用しました。@downey さん、git pull を実行してから再ビルドを試してみてください。これで uglify ではなく terser が使用されるはずです。

cc @pmusaraj

「いいね!」 6

皆様、ありがとうございます。数時間の間、家族の用事で不在にしていましたが、このアップデートが発表されていたことに心地よい驚きを覚えました。

良い知らせ:git pull を実行して再ビルドしたところ、すべて正常に動作しているようです。(ただし、利用可能な容量が 5GB 未満という通知が表示されたため、古い Docker イメージをいくつか削除してから、2 回目に挑戦する必要がありました。)

しかし、私の知る限り、今はすべて順調です。:tada:

私側からさらに情報が必要な場合は、お知らせください。

「いいね!」 8