그 후 이를 피처 플래그 뒤에 두는 것이 좋은 방법일 수 있습니다. 그렇게 하면 내부에서 반복적으로 개선할 수 있기 때문입니다.
네, 되돌려졌고 커밋은 이제 tests-passed 상태입니다:
알려주셔서 감사합니다. 불편을 드려 죄송합니다.
이 revert가 OP의 문제도 해결했는지 궁금합니다. OP(@devnull)는 다음 오류를 보고했습니다:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
이것은 @pfaffman이 보고하지 않은 내용입니다.
또한 다음에 대해 언급하고 싶습니다:
RAM을 추가하면 성능이 향상될 수 있지만, 실제로 메모리 부족(OOM) 상태에서는 RAM+swap의 총량이 중요합니다. 메모리 부족 상황에서 swap을 추가해도 도움이 되지 않는다면, RAM을 추가해도 도움이 되지 않습니다.
@weallwegot의 보고에 따르면 4G의 swap을 추가한 후에도 실패가 지속되고 있으므로, 무언가(또는 무엇인가)가 실제로 매우 많은 메모리를 사용하고 있었던 것으로 보입니다.
동일한 오류입니다. 백트레이스를 읽으면 네 번째 줄에 OOM에 대한 참조가 보입니다.
말씀하신 내용은 모두 사실입니다. 그는 1GB 미만의 RAM을 보유하고 있는데, 이는 매우 적은 용량입니다. 따라서 이 문제가 없더라도 저는 여전히 더 많은 RAM을 추가할 것을 권장합니다. 사실, 2GB 미만의 RAM을 가진 사용자에게는 대부분 RAM 용량 증대를 권고합니다.
제 경우 문제는 해결되었습니다. 앱을 다시 빌드하니 작동합니다. 노력해 주셔서 정말 감사합니다!
(물론 조언은 충분히 이해하고 있습니다. 다만 그 논리가 오해의 소지가 있을 것 같아서요.)
참고로, 해당 플러그인 두 개를 모두 설치하고도 아무 문제 없이 재빌드할 수 있었습니다. 다만 지금은 스왑이 6GB나 차지하고 있어서, 완전히 동일한 조건에서의 비교는 아닙니다. ㅎㅎ
감사합니다! 다시 업무에 복귀했어요.
참고로 방금 해당 변경사항을 다시 병합했는데, 이번에는 부트스트랩이 깨지지 않아야 합니다. 문제가 발생하면 알려주세요.
방금 @pfaffman이 설명한 것과 동일한 유형의 실패가 bootstrap에서 발생했습니다… theme_test_helper에서 구문 오류가 발생했습니다. 더 많은 정보가 필요하시면 알려 주세요.
에러 메시지를 여기에 복사해서 붙여넣어 주시겠어요? 또한 theme_test_helper와 theme_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 Compressing: 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'"
Parse error at _theme_test_helper-790dafad7d3cb8a853fd3127fa3d99022120baf968cbb297066d166808ad3ae1.js:27883,17
define("sinon", () => {
^
ERROR: Unexpected token: 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:30)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
rake aborted!
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>'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
그리고 물론 나머지 플러그인, 테마 컴포넌트 등을 실행한 후에는 다음과 같은 결과가 나타났습니다:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' failed with return #<Process::Status: pid 5128 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
29b7ee9f8297bdac0cc17dae6117ebe5aa94dcdf3f5dbfed4bf03b0bd7751cc0
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
컨테이너에 진입해서 uglifyjs의 버전을 확인해 주시겠어요?
./launcher enter app
uglifyjs --version
그리고 호스트 머신에 설치된 discourse_docker도 확인해 주세요:
git rev-parse HEAD
몇 시간 전 베이스 이미지를 업데이트했고, 이제 2015년에 작성된 JavaScript를 올바르게 컴파일할 수 있도록 새로운 베이스 이미지를 강제 적용하고 있습니다. @downey 님, git pull을 실행한 후 다시 빌드를 시도해 주시겠습니까? 이제 uglify 대신 terser가 사용되어야 합니다.
cc @pmusaraj
다들 감사합니다. 가족과의 약속으로 저녁 몇 시간 자리를 비웠다가 이 업데이트를 보고 기뻤습니다.
좋은 소식: git pull을 실행하고 다시 빌드했는데, 모든 것이 정상적으로 작동하는 것 같습니다. (다만 가용 공간이 5GB 미만이라는 알림이 뜨서 오래된 Docker 이미지를 정리한 후 두 번째로 시도해야 했습니다.)
제가 아는 한 지금은 모든 것이 잘 작동합니다. ![]()
제 쪽에서 추가로 필요한 정보가 있다면 알려주세요.