【问题标题】:Hudson build always end up in "java.lang.OutOfMemoryError: Java heap space" errorHudson 构建总是以“java.lang.OutOfMemoryError: Java heap space”错误结束
【发布时间】:2010-10-08 06:57:29
【问题描述】:

我在使用具有 Windows XP 和 4 GB RAM 的 Hudson 构建从站以及在调用 JNLP 的批处理文件中遇到问题,我指定如下:

javaws -J-Xms1280m -J-Xmx1024m http://hudson-master.domain.com:8080/computer/Exige/slave-agent.jnlp

为什么我不能给它超过 1 GB 的空间?

系统资源不足。 有关详细信息,请参阅以下堆栈跟踪。 java.lang.OutOfMemoryError:Java 堆空间 在 com.sun.tools.javac.util.List.prepend(List.java:145) 在 com.sun.tools.javac.jvm.ClassReader.openArchive(ClassReader.java:1457) 在 com.sun.tools.javac.jvm.ClassReader.list(ClassReader.java:1742) 在 com.sun.tools.javac.jvm.ClassReader.listAll(ClassReader.java:1882) 在 com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1903) 在 com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1538) 在 com.sun.tools.javac.code.Symbol.complete(Symbol.java:355) 在 com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:256) 在 com.sun.tools.javac.tree.Tree$TopLevel.accept(Tree.java:382) 在 com.sun.tools.javac.comp.Enter.classEnter(Enter.java:221) 在 com.sun.tools.javac.comp.Enter.classEnter(Enter.java:235) 在 com.sun.tools.javac.comp.Enter.complete(Enter.java:448) 在 com.sun.tools.javac.comp.Enter.main(Enter.java:433) 在 com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:404) 在 com.sun.tools.javac.main.Main.compile(Main.java:592) 在 com.sun.tools.javac.main.Main.compile(Main.java:544) 在 com.sun.tools.javac.Main.compile(Main.java:85) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:585) 在 org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:420) 在 org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:141) 在 org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:493) 在 org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114) 在 org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483) 在 hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:519) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332) [信息] --------------------------------------------- ------------------------- [INFO] 如需更多信息,请使用 -e 开关运行 Maven [INFO] --------------------------------- -------------------------------------- [INFO] 总时间:34 秒 [INFO] 完成时间:Fri Oct 08 17:27:59 EST 2010 [INFO] Final Memory: 25M/63M [INFO] ---------------------- --------------------------------------------------

【问题讨论】:

    标签: java hudson


    【解决方案1】:

    Xms 通常应低于Xmx

    【讨论】:

    • 您需要 -J 标志将 JVM 参数传递给 javaws (Java Web Start)。
    • 啊,是的,谢谢您的回复,但是值仍然不能大于1 GB?我不知道为什么,这台电脑在 Windows XP msinfo32 中有 3.24 GB 可用空间。
    【解决方案2】:

    构建是由从代理的JVM直接执行的吗?如果您运行 Maven 构建(例如),从代理可以启动外部 Maven 进程(使用默认 Java Xmx)。

    因此您应该指定 MAVEN_OPTS 参数以确保始终使用自定义 Xmx 值执行 Maven 构建。

    【讨论】:

    • 感谢您的回复,所以在这种情况下,我应该去 HUDSON 服务器并更改该值吗? (什么文件,在哪里?)
    • 感谢 Benoit,这是 Hudson 中的一个 maven 选项,可以让它在执行 maven 构建时为 JVM 分配更多内存。在我在服务器中进行更改后(通过基于 Web 的控制台),它现在可以正常工作了。
    【解决方案3】:

    如果你有Master Slave配置,你应该在Manage Hudson->Configure system->Global properties中指定内存设置

    Master 上的 Environment 属性也用于 Slave。

    【讨论】:

      【解决方案4】:

      请注意:在 32 位 Windows 上,Java VM 分配的空间不能超过 1 GB。不要问我为什么,但情况就是这样(至少 Sun JVM 是这样)。如果您的 JVM 需要更多内存,则需要 64 位系统。当然还有 64 位 JVM。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-20
        • 2010-09-07
        • 2012-08-03
        相关资源
        最近更新 更多