gpt4 book ai didi

java - mvn 测试 java.lang.OutOfMemoryError : unable to create new native thread

转载 作者:搜寻专家 更新时间:2023-10-31 19:35:19 25 4
gpt4 key购买 nike

当我运行 mvn test 时,我收到以下异常。我已经尝试提高和降低我的 Xmx 和 Xss JVM 设置,并在 ulimit 下提高所有限制。大约有 1300 个测试,最后 200 个总是失败并出现此异常。自己运行这些测试可以让它们通过。同样的测试在我的 ubuntu 盒子上通过了。我在我的 Mac 上运行测试时收到此异常。我很确定这是一个环境问题,但我已经调整了我知道的每一个设置,但绝对没有运气。

我正在使用 mvn 2.1 和 Java 6。我的测试框架是 junit 4.8。

java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:658)
at java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:727)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:657)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:92)
at com.google.appengine.tools.development.ApiProxyLocalImpl$PrivilegedApiAction.run(ApiProxyLocalImpl.java:197)
at com.google.appengine.tools.development.ApiProxyLocalImpl$PrivilegedApiAction.run(ApiProxyLocalImpl.java:184)
at java.security.AccessController.doPrivileged(Native Method)
at com.google.appengine.tools.development.ApiProxyLocalImpl.doAsyncCall(ApiProxyLocalImpl.java:172)
at com.google.appengine.tools.development.ApiProxyLocalImpl.makeAsyncCall(ApiProxyLocalImpl.java:138)

最佳答案

我在使用 Maven Surefire 插件 (v2.12) 时遇到了这个问题。我必须按如下方式配置 surefire:

<configuration>
<forkMode>always</forkMode>
... other surefire config ...
</configuration>

如果我在我的配置中省略了“forkMode”元素,我会得到“无法创建新的 native 线程”错误,因为 java Surefire 进程会创建数千个线程,否则会超过我的操作系统限制(Mac OSX——你可以在 Activity 监视器中看到它)。

据我所知,所有新线程都在创建,因为 Surefire 中默认的“forkMode”是“一次”,并且无论创建什么新线程都不会消失,直到“一个”surefire 进程终止。

最后一点:调整我的 JVM 内存设置似乎没有效果(好或坏)。使用默认值可以正常工作,如下所示:

<argLine>-Xss512k -Xms512m -Xmx4096m -XX:MaxPermSize=2048m</argLine>

关于java - mvn 测试 java.lang.OutOfMemoryError : unable to create new native thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com