Size: a a a

2021 April 22

NM

Nikita Matveenko in pro.jvm
не решу - мне нужно только в тесте - проверить на какой глубине текущая JVM бросает SOE
источник

E

Etki in pro.jvm
8192 же

Страницы вроде 4096 почти везде, поэтому в большинстве случаев (если не во всех) с выравниваем проблем не будет, нет, не знаю откуда пошло, но гугл наверняка выдаст нужный ответ на СО, подозреваю что там немного префетча. А вообще вынести конфигурационной опцией с дефолтом.
источник

E

Etki in pro.jvm
Поставь обработчиком выход с необычным exit code да запускай отдельным процессом, а в тесте лови этот exit code. А вообще да, если SOE может быть, то код изначально сломан.
источник

AE

Alexandr Emelyanov in pro.jvm
С ним не должно быть как раз переполнения
источник

E

Etki in pro.jvm
Вместо ловли soe поставить счётчик с декрементом да вываливаться ещё до переполнения стека и при достижении нуля и бить плохого юзера исключением.
источник

AE

Alexandr Emelyanov in pro.jvm
Да не будет у него soe при tailrec
источник

NM

Nikita Matveenko in pro.jvm
правильно - не будет - но тест не знает про имплементацию - тест ее проверяет - что она не взрывается - ну а как еще проверить настройки двжм при котором случиться SOE - кроме как тригирнуть перед запуском теста - поймать и прогнорить - а если не вылетит то уронить тест тк не правильную глубину мы выбрали для теста и ничего на самом деле не тестируем
источник

E

Etki in pro.jvm
А у него есть гарантии что там развернётся в tailrec?
источник

D

Denis in pro.jvm
спасибо
источник

S

SR in pro.jvm
Всем привет! Сори что не по теме, кто то может подсказать как в Intellij Idea отменить последний мерж?
источник

NM

Nikita Matveenko in pro.jvm
да есть от скала компилятора гарантии если нельзя будет оптимизировать и есть tailrec аннотация - то ошибка компиляции будет
источник

AE

Alexandr Emelyanov in pro.jvm
Ещё раз, что ты собираешься проверять если там tailrec?
источник

NM

Nikita Matveenko in pro.jvm
нет - я собираюсь проверять что какой-то вызов функции не взрывается с SOE при N повторений/элементов в списке и тд - для этого я сначала тестирую JVM и выясняю при каких условиях вылетает SOE в текущем инстансе ДЖВМ
источник

E

Etki in pro.jvm
тогда норм. одобряем. я думал это чисто рекомендация компилятору, не более.
источник

AS

Aleksey Shipilev in pro.jvm
так эти условия зависят от того, что там на стеке вообще лежит, откуда этот вызов начался, сколько там аргументов и локалов лежит, сколько вообще Xss -- упаришься считать :)
источник

NM

Nikita Matveenko in pro.jvm
спасибо 🙂 но я вот задумался как тестить такие случаи и стал пробовать - отсюда и вопросы пошли
без tailrec аннотации скала компилятор будет оптимизировать где может но не обещает и ничего не скажет - но если попросить (поставив аннотацию tailrec на метод) то будет проверять и валить билд если не может оптимизировать
источник

AS

Aleksey Shipilev in pro.jvm
SOE -- это исключения в духе OOME, "что-то пошло не так, вот вам стектрейс, разбирайтесь"
источник

NM

Nikita Matveenko in pro.jvm
ага я так и подумал - поэтому сдался когда пытался найти как достать текущий Xss изнутри JVM 🙂 кстати спасибо что обратил внимание на этот вопрос - я как раз тебя первым делом и хотел спросить - тк видел коммент в джире про JEP 270
источник

AS

Aleksey Shipilev in pro.jvm
Я бы если писал тест, ожидающий SOE, то руками бы утоптал -Xss до минимума (он, правда, платформо-специфичный, но...)
источник

I

Ivan in pro.jvm
Товарищи, сталикивался кто-нибудь с OOM при создании .xlsx использую Apache POI ? Как можно как нибудь порешать без переезда с DOM на SAX ?
источник