我的情况与此类似: 场景:我在Linux(Debian Jessie 8.2)上有一个C应用程序和一个Jenkins构建服务器.我的开发环境中装有Eclipse CDT,它可以完美地构建我的C App(本地构建).我在构建服务器上安装了Eclipse CDT,并且我的Jenkins脚本运行无头构建来构建我的App. 问题:即使构建完成,Jenkins也会挂起.但这不是jenkins的错.我从方程式中删除了Jenkins,并在构建服务器中进行了Eclipse headlessbuild,结果是相同的,它在打印出“ Build Finished”后挂起.值得注意的是,如果我在构建服务器中打开Eclipse CDT并使用UI触发构建,则可以成功构建App. 版本:在构建服务器中,我尝试了Java 1.7和1.8.至于Eclipse,我尝试了开普勒,月神,火星和霓虹灯(最后一个需要Java 1.8).对于这篇文章,我正在使用:
命令:这是我使用的无头构建的Eclipse CDT命令:
观察结果: >当Java挂起时,我可以终止其进程并获取可执行文件
然后我得到以下内容:
结论:当Eclipse以无头模式运行时,Java似乎陷入了僵局.它不会一直发生,但是我猜是99%.而且,它不会永远挂着,一两个小时后就会回来,这对任何构建服务器都是不利的. 那么,有人遇到这样的问题吗? 解决方法: (如评论中所确认) 您面临的问题很可能是CDT索引器中的锁定.有时,当Eclipse中的生命周期很短时,CDT索引器不幸地锁定了.在命令行中,可以使用-no-indexer命令行选项(在Eclipse Mars中添加)来禁用它. 锁定本身是一个错误,请参见Bug 327126 – Deadlock attempting to cancel PDOMIndexerJob during a resource delta notification 您的jstack问题很可能是不相关的,并且很可能是由于java进程与jstack进程之间的权限,用户或JVM不匹配所致. 来源:https://www./content-1-556001.html |
|