【发布时间】:2013-01-17 05:44:41
【问题描述】:
我刚刚在 Windows 机器上升级到 Jenkins 1.500。我还有一个 8GB RAM 的 windows slave。我已经远程连接到这个从站,并从 Jenkins 网络界面启动它(使用 JNLP 启动按钮)。
它在 Jenkins 上显示得很好,我已经为它分配了一些工作。其中一项作业使用以下 vm args 调用 java 应用程序:
-XX:MaxPermSize=512m -Xmx1024m
但作业失败并出现以下错误:
Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
如果我在从属设备上本地运行作业,它工作正常。任何想法为什么在通过詹金斯触发时构建在 windows slave 上失败?
在升级之前,该作业在从属设备上运行良好。
slave 正在运行: java版本“1.6.0_34” Java(TM) SE 运行时环境 (build 1.6.0_34-b04) Java HotSpot(TM) 64 位服务器 VM(内部版本 20.9-b04,混合模式)
【问题讨论】:
-
这对于 32 位 Windows 来说太过分了。您只需要 1.5GB 堆 + 额外的堆栈/本机连续地址空间。减少 perm gen 或确保您拥有 64 位 java。即显示 java -version
-
我正在运行 64 个 windows 和 java。正如我所写的那样,Java 应用程序在具有上述设置的从属设备上本地运行良好。只有当我从 Jenkins master 开始工作时,我才会收到错误。
-
确保运行的java是一样的,即没有安装其他java,这个错误非常强烈提示32bit java,也可能是其他一些参数设置错误,如果错误消失通过减小值permgen/maxheap 它很可能是 32 位 java
-
你读过我的评论吗 - 它在机器上本地运行上述 vm 参数。
-
我卸载了所有 java 安装并重新安装了一个 64 位版本。它现在有效,所以你是对的。
标签: java jenkins jvm-arguments slave