【问题标题】:PermGen Space issue in JenkinsJenkins 中的 PermGen 空间问题
【发布时间】:2016-04-07 07:45:55
【问题描述】:

我正在构建一个 maven 项目,因为过去 1.5 年的构建工作正常,但现在我收到 PermGen 空间错误。

[ERROR] Internal error: java.lang.RuntimeException: org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded() listener has failed: java.io.IOException: Remote call on channel failed: PermGen space -> [Help 1]
[ERROR] org.jfrog.build.extractor.maven.BuildInfoRecorder.sessionEnded() listener has failed:
java.lang.OutOfMemoryError: PermGen space

我尝试了以下选项来解决它:-

1) 在 Manage Jenkins 下,然后是 Configure System。在全局属性部分,添加了名为 MAVEN_OPTS 的环境变量,其值设置为-Xmx200m -XX:MaxPermSize=512m

2) 在 job configuration 下,然后在 Build 下,在 MAVEN_OPTS,添加以下属性:-

-DXms512m
-DXmx1024m
-DXX:PermSize=512m
-DXX:MaxPermSize=1024m
-DXX:+CMSClassUnloadingEnabled
-DXX:+UseConcMarkSweepGC

错误仍在发生。

注意:-错误不是永久性的,它会在几次构建后消失,但再次开始出现,然后在重试几次后再次消失。

谢谢。

【问题讨论】:

    标签: java maven jenkins hudson


    【解决方案1】:

    也许我错了,但是当 Jenkins 尝试将构建信息发送到 Artifactory(使用后步骤操作)时,您的内存错误似乎发生了。

    您最近升级了 Jenkins Artifactory 插件吗?

    您可以尝试禁用“捕获和发布构建信息”选项吗?

    最后一个选项,您能否尝试更新 JENKINS_JAVA_OPTIONS(在 jenkins 服务配置文件中)以增加 MaxPermSize?

    ## Type: string
    ## Default:     "-Djava.awt.headless=true"
    ## ServiceRestart: jenkins
    #
    # Options to pass to java when running Jenkins.
    #
    JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms2G -Xmx4G -XX:MaxPermSize=256m"
    

    【讨论】:

    • 感谢 Bruno,是的,当它尝试将工件部署到工件时,构建失败。我已禁用“捕获和发布构建信息”选项,但它不起作用。
    • 您是否激活了此选项? --> 启用 JIRA 集成
    • 您是否在 Jenkins 启动脚本中设置了一些 JAVA 参数?它可以帮助解决您的问题:)
    • 感谢 Bruno,是的,当它尝试将工件部署到工件时,构建失败。我已禁用“捕获和发布构建信息”选项,但它不起作用。我也无法在服务器上找到 jenkins 配置文件。没有名为 jenkins.xml 或 jenkins.config 的文件。它既不存在于 /etc/default/jenkins 也不存在于 /etc/sysconfig/ 这已禁用启用 JIRA 集成
    • 您的配置文件路径似乎正确(Ubuntu 为 /etc/default/jenkins,CentOS 为 /etc/sysconfig/jenkins)。您是否与 root 帐户或用户(具有 sudo 权限)连接?
    【解决方案2】:

    由于 Maven 项目在 node 上的构建步骤期间部署工件不是,而是在 ma​​ster 上,我怀疑 Permgen 问题可以通过以下方式解决要么升级 Jenkins 核心、插件,要么在 Jenkins 启动选项中增加 Permgen 最大大小。

    ps。 Java 8 淘汰了 Permgen。

    【讨论】:

      【解决方案3】:

      也许我是盲人,你已经在某处写了它,但是当我遇到类似的问题时,我已经将 Jenkins 本身的 JRE 版本从 7 升级到 8。当我使用 Jenkins 2.X 和Java 7。

      最好的问候,

      最大

      【讨论】:

        【解决方案4】:

        在 centos6 上通过 rpm 或 yum 安装 jenkins

        vim /etc/sysconfig/jenkins
        JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx1024m -XX:MaxPermSize=512m"
        

        【讨论】:

          猜你喜欢
          • 2012-08-10
          • 2014-06-21
          • 2011-07-27
          • 1970-01-01
          • 2023-04-03
          • 2014-07-01
          • 1970-01-01
          • 2011-09-04
          相关资源
          最近更新 更多