JUnit Ant任务导致“堆栈大小太小”错误

时间:2009-12-17 16:41:04

标签: java linux

使用JUnit ant任务从Centos 5.4上的CruiseControl运行我的单元测试

我的jUnit Task forks运行测试,其中大部分工作正常,但是我一直遇到JVM崩溃的间歇性故障,总是出现同样的错误:

[junit]致命:堆叠尺寸太小。使用'ulimit -s'来增加默认堆栈大小。

我使用ulimit将堆栈大小加倍,崩溃继续发生。 JUnit任务运行大约100个不同的jUnit测试类,并且JVM崩溃可能发生在任何一个中,因此我不认为该行为是由于任何特定的测试。

ulimit -a告诉我堆栈大小是32768 kb(我已经提升了几次才能达到这一点),这对我来说似乎很大。

运行sun jdk 1.3

任何人都有任何线索,或建议什么是合理的堆栈大小。

从来没有提到过增加java堆栈大小(-Xss) - 但我还是尝试了相同的结果。

戴夫

2 个答案:

答案 0 :(得分:3)

你添加了这样的东西:

<jvmarg line="-Xss512k"/> 
在ant脚本中

或者只是增加ant进程本身的堆栈(当然,假设您正在分叉测试而不是在VM的ant实例中运行它们。)

答案 1 :(得分:0)

我对这件事的想法是,不知何故事情并没有从内部堆栈弹出,我意识到这是显而易见的。由于你说它在整个测试过程中任意失败,因此有点难以追踪。这些测试用例中有多少是递归的?还有多少货叉正在执行?