V8 разработчик здесь. Упомянутая вами ссылка говорит о системных библиотеках. Я не знаю ни одной причины, почему V8 пытался читать системные библиотеки. Вы уверены, что это то, что происходит? Можете ли вы запустить сборку Debug и получить трассировку стека? Без дополнительных данных я бы заподозрил, что происходит что-то еще, что вызывает эти сбои.
FWIW:
--untrusted-code-mitigations
заставляет (оптимизирующий) компилятор выдавать последовательности кода, которые (частично) устранить недавно обнаруженные "призрачные" ошибки безопасности процессора. Это совершенно не связано с совместимостью Android 10.
--jitless
отключает всю оперативную генерацию кода в достаточно новых версиях V8 (конечно, при значительных затратах на производительность). Это также не относится к памяти только для выполнения для Android системных двоичных файлов.
Обновление после обновленного вопроса и обсуждение в комментариях:
На основе стека При трассировке кажется, что процесс завершается сбоем, когда ему не хватает места в стеке. V8 должен обнаружить эту ситуацию и бросить RangeError
до того, как это произойдет; механизм для выполнения sh, который работает, зная оценку того, сколько стекового пространства будет доступно для процесса. Очевидно, для (по крайней мере) указанной комбинации c вашего приложения, работающего на Android 10, остается меньше стекового пространства, чем ожидает V8 v5.0. Обходной путь - запустить с флагом --stack-size=800
или, в качестве альтернативы, отредактировать константу V8_DEFAULT_STACK_SIZE_KB
в src/globals.h
.
Примечание для других читателей: установка --stack-size
в огромное значение не будет магическим образом дать вам более глубокие пределы рекурсии; вместо этого он разрешит вашему процессу cra sh при превышении заданного в операционной системе предела стека вместо того, чтобы выдавать RangeError
. Установка слишком низкого значения --stack-size
будет означать, что код JavaScript не сможет иметь много глубоких вызовов функций (или, в крайнем случае, вообще не запускаться), прежде чем выдать RangeError
. Обычно рекомендуется оставить этот флаг в покое, если только вы не столкнулись с конкретной проблемой c, как здесь, где помогает небольшая настройка.