当前位置:  开发笔记 > 编程语言 > 正文

分叉的虚拟机终止而没有说再见.VM崩溃或System.exit调用

如何解决《分叉的虚拟机终止而没有说再见.VM崩溃或System.exit调用》经验,为你挑选了11个好方法。

请帮我解决这个问题.我不完全理解日志中的错误意味着什么.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.749s
[INFO] Finished at: Thu Apr 24 10:10:20 IST 2014
[INFO] Final Memory: 15M/37M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.15:test (default-test) on project samples.simpleforwarding: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.15:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
[ERROR] Command wascmd.exe /X /C ""C:\Program Files\Java\jdk1.7.0_55\jre\bin\java" -Xmx1024m -XX:MaxPermSize=256m -jar E:\OpenDayLight\controller\opendaylight\samples\simpleforwarding\target\surefire\surefirebooter53410321571238933.jar E:\OpenDayLight\controller\opendaylight\samples\simpleforwarding\target\surefire\surefire86076271125218001tmp E:\OpenDayLight\controller\opendaylight\samples\simpleforwarding\target\surefire\surefire_01846991116135903536tmp"
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

xiaohuo.. 91

我有同样的问题,并通过添加:

-Xmx1024m -XX:MaxPermSize=256m

整个插件元素是:


  org.apache.maven.plugins
  maven-surefire-plugin
  
    3
    true
    -Xmx1024m -XX:MaxPermSize=256m
  

+1我逐字地使用了这个片段,它修复了Travis-CI的问题.我们没有在任何开发人员的工作站上得到这个. (7认同)

以上并没有解决我的问题.当'.m2`中的某个依赖项(jar等)损坏时,可能会发生此问题.删除〜/ .m2/repository`rm -rf~/.m2/repository`然后`mvn install`解决了它. (6认同)

OpenJDK 64位服务器VM警告:忽略选项MaxPermSize = 256m; 支持在8.0中删除 (5认同)

复制并粘贴到我的pom文件中,它就像一个魅力,谢谢 (2认同)


小智.. 43

就我而言,该问题与将日志输出到IntelliJ IDEA控制台(OS Windows 10)中的时间过长有关。

命令:

mvn clean install

此命令为我解决了这个问题:

mvn clean install > log-file.log

就我而言,过多的日志记录是真正的问题! (3认同)


小智.. 32

我有类似的问题(Maven build和maven-failsafe-plugin - 分叉的虚拟机没有正确说再见就终止了)并找到了三个适合我的解决方案:

问题描述

问题是maven插件maven-surefire-plugin仅在版本2.20.1和2.21.0中.我检查过你使用版本2.20.1.

解决方案1

将插件版本升级到2.22.0.在pom.xml中添加:


  org.apache.maven.plugins
  maven-surefire-plugin
  2.22.0

解决方案2

将插件版本降级到2.20.在pom.xml中添加:


  org.apache.maven.plugins
  maven-surefire-plugin
  2.20

解决方案3

使用插件配置testFailureIgnore.在pom.xml中添加:


  org.apache.maven.plugins
  maven-surefire-plugin
  
    true
  

关于解决方案3:我们真的可以说忽略测试失败是一种解决方案吗?如果测试的结果毫无意义,那有什么意义呢? (3认同)


majikman.. 31

截至今天(10/30/2018),我们注意到我们的构建在Jenkins中出现了这个错误.

该错误有点误导,需要查看转储输出target/surefire-reports/ 以查看以下错误消息:

Error: Could not find or load main class org.apache.maven.surefire.booter.ForkedBooter

这导致我在下面的SO帖子中提到了OpenJDK 181中可能存在的错误:Maven surefire无法找到ForkedBooter类

该帖子中的任何一个修复程序都解决了我的问题.具体来说,我使用其中一个:

    从docker容器中的建筑物切换maven:3.5.4-jdk-8maven:3.5.4-jdk-8-alpine

    覆盖Spring Boot的类加载器详细信息:https://stackoverflow.com/a/50661649/1228408


小智.. 21

Surefire FAQ的这一部分可以帮助您:

Surefire失败并显示消息"分叉的虚拟机在没有正确说再见的情况下终止"

Surefire不支持随时调用System.exit()的测试或任何引用库.如果他们这样做,他们与surefire不兼容,你可能应该向库/供应商提出问题.或者,分叉的VM也可能由于多种原因而崩溃,这也可能导致此问题发生.查找表示VM崩溃的经典"hs_err*"文件,或者在测试执行时检查运行maven的日志输出.崩溃进程的一些"非常"输出可能会被转储到控制台/日志中.如果这种情况发生在CI环境中并且仅在一段时间后运行,那么您的测试套件很可能会泄漏某种操作系统级别的资源,这会使每次运行都变得更糟.常规的os级监控工具可能会给你一些指示.


小智.. 9

刚刚面临同样的问题,ubuntu上的java 8

然后遇到/sf/ask/17360801/

它似乎是一个最新的插件版本2.22.1与java 8 https://issues.apache.org/jira/browse/SUREFIRE-1588

通过本地mvn设置遵循建议的解决方法 ~/.m2/settings.xml


    
        SUREFIRE-1588
        
            true
        
        
            -Djdk.net.URLClassPath.disableClassPathURLCheck=true
        
    


javabeangrin.. 6

我今天遇到了同样的问题,对我来说,真正的问题是在日志中进一步报告并带有消息Cannot use a threadCount parameter less than 1; 1 > 0.1在surefire-plugin配置中添加时,其他错误消失了.

完整的插件配置:
        
            org.apache.maven.plugins
            maven-surefire-plugin
            2.18.1
            
                
                    org.apache.maven.surefire
                    surefire-junit47
                    2.18.1
                
                
                    org.apache.maven.surefire
                    surefire-testng
                    2.18.1
                
            
            
                1
            
        

...是的,我在此测试框架中使用junit和testng,以实现向后兼容性.



1> xiaohuo..:

我有同样的问题,并通过添加:

-Xmx1024m -XX:MaxPermSize=256m

整个插件元素是:


  org.apache.maven.plugins
  maven-surefire-plugin
  
    3
    true
    -Xmx1024m -XX:MaxPermSize=256m
  


+1我逐字地使用了这个片段,它修复了Travis-CI的问题.我们没有在任何开发人员的工作站上得到这个.
以上并没有解决我的问题.当'.m2`中的某个依赖项(jar等)损坏时,可能会发生此问题.删除〜/ .m2/repository`rm -rf~/.m2/repository`然后`mvn install`解决了它.
OpenJDK 64位服务器VM警告:忽略选项MaxPermSize = 256m; 支持在8.0中删除
复制并粘贴到我的pom文件中,它就像一个魅力,谢谢

2> 小智..:

就我而言,该问题与将日志输出到IntelliJ IDEA控制台(OS Windows 10)中的时间过长有关。

命令:

mvn clean install

此命令为我解决了这个问题:

mvn clean install > log-file.log


就我而言,过多的日志记录是真正的问题!

3> 小智..:

我有类似的问题(Maven build和maven-failsafe-plugin - 分叉的虚拟机没有正确说再见就终止了)并找到了三个适合我的解决方案:

问题描述

问题是maven插件maven-surefire-plugin仅在版本2.20.1和2.21.0中.我检查过你使用版本2.20.1.

解决方案1

将插件版本升级到2.22.0.在pom.xml中添加:


  org.apache.maven.plugins
  maven-surefire-plugin
  2.22.0

解决方案2

将插件版本降级到2.20.在pom.xml中添加:


  org.apache.maven.plugins
  maven-surefire-plugin
  2.20

解决方案3

使用插件配置testFailureIgnore.在pom.xml中添加:


  org.apache.maven.plugins
  maven-surefire-plugin
  
    true
  


关于解决方案3:我们真的可以说忽略测试失败是一种解决方案吗?如果测试的结果毫无意义,那有什么意义呢?

4> majikman..:

截至今天(10/30/2018),我们注意到我们的构建在Jenkins中出现了这个错误.

该错误有点误导,需要查看转储输出target/surefire-reports/ 以查看以下错误消息:

Error: Could not find or load main class org.apache.maven.surefire.booter.ForkedBooter

这导致我在下面的SO帖子中提到了OpenJDK 181中可能存在的错误:Maven surefire无法找到ForkedBooter类

该帖子中的任何一个修复程序都解决了我的问题.具体来说,我使用其中一个:

    从docker容器中的建筑物切换maven:3.5.4-jdk-8maven:3.5.4-jdk-8-alpine

    覆盖Spring Boot的类加载器详细信息:https://stackoverflow.com/a/50661649/1228408



5> 小智..:

Surefire FAQ的这一部分可以帮助您:

Surefire失败并显示消息"分叉的虚拟机在没有正确说再见的情况下终止"

Surefire不支持随时调用System.exit()的测试或任何引用库.如果他们这样做,他们与surefire不兼容,你可能应该向库/供应商提出问题.或者,分叉的VM也可能由于多种原因而崩溃,这也可能导致此问题发生.查找表示VM崩溃的经典"hs_err*"文件,或者在测试执行时检查运行maven的日志输出.崩溃进程的一些"非常"输出可能会被转储到控制台/日志中.如果这种情况发生在CI环境中并且仅在一段时间后运行,那么您的测试套件很可能会泄漏某种操作系统级别的资源,这会使每次运行都变得更糟.常规的os级监控工具可能会给你一些指示.



6> 小智..:

刚刚面临同样的问题,ubuntu上的java 8

然后遇到/sf/ask/17360801/

它似乎是一个最新的插件版本2.22.1与java 8 https://issues.apache.org/jira/browse/SUREFIRE-1588

通过本地mvn设置遵循建议的解决方法 ~/.m2/settings.xml


    
        SUREFIRE-1588
        
            true
        
        
            -Djdk.net.URLClassPath.disableClassPathURLCheck=true
        
    



7> javabeangrin..:

我今天遇到了同样的问题,对我来说,真正的问题是在日志中进一步报告并带有消息Cannot use a threadCount parameter less than 1; 1 > 0.1在surefire-plugin配置中添加时,其他错误消失了.

完整的插件配置:
        
            org.apache.maven.plugins
            maven-surefire-plugin
            2.18.1
            
                
                    org.apache.maven.surefire
                    surefire-junit47
                    2.18.1
                
                
                    org.apache.maven.surefire
                    surefire-testng
                    2.18.1
                
            
            
                1
            
        

...是的,我在此测试框架中使用junit和testng,以实现向后兼容性.



8> andreyro..:

在JDK 1.8.0_ 65上使用Jacoco插件运行mvn命令时遇到类似问题

[INFO]
A fatal error has been detected by the Java Runtime Environment:

JRE version: Java(TM) SE Runtime Environment (8.0_65-b17) (build 1.8.0_65-b17).........
Problematic frame:
PhaseIdealLoop::build_loop_late_post(Node*)+0x144
............
............
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19:test (default-test) on project 

 The forked VM terminated without properly saying goodbye. VM crash or System.exit called?

JDK中有一个错误https://bugs.openjdk.java.net/browse/JDK-8081379

解决方案是使用param -XX:-UseLoopPredicate运行mvn clean install

或者只是对JDK进行更新(我认为较新的次要版本有效)



9> 小智..:

关闭maven-surefile-plugin的useSystemClassLoader应该有帮助

        
            org.apache.maven.plugins
            maven-surefire-plugin
            2.22.0
            
                false
            
        



10> Chad Van De ..:

如果有人包含自定义argLine参数,则必须重新考虑,因为它可能是内存分配问题的根源.

例如(我以前):

XX:MaxPermSize=4096m ${argLine}

现在我使用硬指定值:

-Xmx1024m -XX:MaxPermSize=256m

无论出于何种原因,与Socofire集成的应用程序(如Jacoco)不要求足够的内存与构建时发生的测试共存.



11> 小智..:

我也在Jenkins Docker容器中遇到了这个问题(尝试了jenkins:lts,jenkins,jenkins:slim和jenkins:slim-lts。我不想遍历所有存储库并为每个项目更新pom,所以我刚刚将disableClassPathURLCheck添加到maven命令行调用中:

mvn test -DargLine="-Djdk.net.URLClassPath.disableClassPathURLCheck=true"

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有