Возможно, стоит разместить это за флагом функции, чтобы мы могли internally итерировать над ним.
Хорошо, это было отменено, и коммит теперь находится в ветке tests-passed:
Спасибо, что сообщили нам, и извините за неудобства.
Мне было бы интересно узнать, решил ли этот откат также проблему автора темы. Автор темы (@devnull) сообщал о следующей ошибке:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
которую не наблюдал @pfaffman.
Также я хочу прокомментировать следующее:
Добавление оперативной памяти иногда может улучшить производительность, но при фактическом исчерпании памяти решающим фактором является сумма RAM и swap. Если увеличение swap не помогает при исчерпании памяти, то и добавление RAM тоже не поможет.
Как сообщает @weallwegot, ошибка сохраняется даже после добавления 4 ГБ swap, значит, какой-то процесс (или был) действительно очень прожорлив.
Это та же ошибка. Чтение обратной трассировки показывает ссылку на OOM на четвёртой строке.
Всё это верно. У него менее 1 ГБ оперативной памяти, что не так уж много. Поэтому, даже если бы у него не было этой проблемы, я всё равно порекомендовал бы ему добавить больше оперативной памяти. К слову, я в основном рекомендую всем, у кого менее 2 ГБ оперативной памяти, увеличить её объем.
Проблема для меня решена. Пересборка приложения работает. Большое спасибо за ваши усилия!
Конечно, я понимаю рекомендацию, но логика, похоже, могла бы ввести в заблуждение.
Кстати, удалось пересобрать с обоими плагинами без проблем. Хотя теперь у меня 6 ГБ файла подкачки, так что это уже не совсем прямое сравнение, ха-ха.
Спасибо! Я снова в строю.
К вашему сведению, я снова объединил это изменение, но на этот раз оно не должно сломать Bootstrap. Пожалуйста, дайте знать, если возникнут какие-либо проблемы.
Только что у меня произошла точно такая же ошибка при загрузке, которую описал @pfaffman… ошибка синтаксического анализа в 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 Сжатие: 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", () => {
^
ОШИБКА: Неожиданный токен: знак препинания «)»
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 aborted!
Errno::ENOENT: Нет такого файла или каталога @ 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 может помочь в диагностике проблемы.
```
Пожалуйста, войдите в контейнер и проверьте версию uglifyjs:
./launcher enter app
uglifyjs --version
А также версию discourse_docker на вашем хост-машине:
git rev-parse HEAD
Мы обновили базовый образ несколько часов назад и теперь принудительно используем новый базовый образ, чтобы корректно компилировать JavaScript 2015 года. Пожалуйста, выполните git pull, а затем попробуйте пересобрать проект, @downey? Теперь должно использоваться terser вместо uglify.
cc @pmusaraj
Спасибо всем. Я отсутствовал несколько вечеров из-за семейных обязательств, но был приятно удивлён, увидев это обновление.
Хорошая новость: я выполнил git pull и пересобрал проект, и всё, кажется, работает нормально. (Хотя я получил уведомление о том, что свободно менее 5 ГБ, поэтому пришлось удалить старые образы Docker и повторить попытку.)
Но, насколько я могу судить, сейчас всё в порядке. ![]()
Дайте знать, если понадобится дополнительная информация с моей стороны.