Задача JUnit Ant вызывает ошибку «Размер стека слишком мал» - PullRequest
0 голосов
/ 17 декабря 2009

Использование задачи ant JUnit для запуска моих юнит-тестов из CruiseControl на Centos 5.4

Моя задача jUnit разветвляется для запуска тестов, большинство из которых работает нормально, однако я постоянно получаю периодические сбои, когда происходит сбой JVM, всегда с той же ошибкой:

[junit] Fatal: Размер стека слишком мал. Используйте 'ulimit -s' для увеличения размера стека по умолчанию.

Я удвоил размер стека с помощью ulimit, и сбои продолжают происходить. Задача JUnit запускает около 100 различных классов тестирования jUnit, и сбой JVM может произойти в любом из них, поэтому я не верю, что такое поведение связано с каким-либо конкретным тестом.

ulimit -a говорит мне, что размер стека составляет 32768 КБ (я поднял его несколько раз, чтобы достичь этой точки), что мне кажется огромным.

Бегущее солнце jdk 1.3

Кто-нибудь получил какие-либо подсказки или рекомендации относительно разумного размера стека.

Ни разу не упоминалось об увеличении размера стека Java (-Xss) - но я все равно попробовал с тем же результатом.

Dave

Ответы [ 2 ]

3 голосов
/ 17 декабря 2009

Вы добавили что-то вроде этого:

<jvmarg line="-Xss512k"/> 

в сценарии ant или просто увеличьте стек для самого процесса ant (при условии, конечно, что вы запускаете тесты вместо того, чтобы запускать их внутри экземпляра ant виртуальной машины).

0 голосов
/ 17 декабря 2009

Мои мысли по этому поводу таковы, что каким-то образом вещи не выталкиваются из внутреннего стека, что, как я понимаю, очевидно. Поскольку вы говорите, что в процессе тестирования происходит сбой произвольно, отследить его немного сложно. Сколько из этих тестов являются рекурсивными по природе? Также, сколько форков исполняется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...