Jenkins 构建失败,错误输出有限

Jenkins 构建失败,错误输出有限

我最近设置了一个 gogs 服务器来连接 Jenkins(之前我们使用 SVN)。连接正常,但从 gogs 服务器检索对象时构建失败,大约在 41%-43%(每次构建都不同,但始终在该范围内)。

GOGS api 是否设置了某种限制?下面是我收到的唯一错误输出。

Receiving objects:  41% (270082/645355), 2.68 GiB | 18.83 MiB/s   
Receiving objects:  41% (270419/645355), 2.70 GiB | 18.96 MiB/s   
Killed by signal 15.

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1996)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1715)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:405)
    at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:351)
    at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:196)
    at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:172)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:107)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:271)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

更新:我的 jenkins master 所在的服务器需要增加磁盘大小(我正在构建的 android ROM 非常庞大,并且会填满缓存直至出现故障)。我已为我的设置添加了另外 60GB 的空间并重新运行了我的构建。

正如 Jey 在评论中提到的,ssh 可能在这方面发挥作用,因此我在 Jenkins 主服务器上的 sshd_config 中添加了以下几行以满足长开放连接的需求:

ClientAliveInterval 120
ClientAliveCountMax 720

这次构建确实比以前的尝试更进一步,但最终还是以与以前相同的方式失败了:

Receiving objects:  55% (355794/645358), 3.51 GiB | 13.63 MiB/s   
Receiving objects:  55% (359617/645358), 3.52 GiB | 13.75 MiB/s   
Killed by signal 15.

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1996)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1715)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:405)
    at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:351)
    at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:196)
    at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:172)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:107)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:271)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

新更新:

进行更多测试(我不认为这是网络问题,但感谢您的评论)。我注意到构建在 10 分钟后被终止。通过查看其他有同样问题的人,我发现您可以通过高级选项增加此时间。我已经这样做了,但 10 分钟后仍然失败。

在此处输入图片描述

最新更新:

我已附上我的构建 config.xml 的副本,如您所见,文件中的超时已更新,但构建仍使用默认的 10 分钟超时限制。不确定我在这里遗漏了什么...

<?xml version='1.1' encoding='UTF-8'?>
<flow-definition plugin="[email protected]">
  <actions/>
  <description>Android ROM Build</description>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.plugins.buildblocker.BuildBlockerProperty plugin="[email protected]">
      <useBuildBlocker>false</useBuildBlocker>
      <blockLevel>GLOBAL</blockLevel>
      <scanQueueFor>DISABLED</scanQueueFor>
      <blockingJobs></blockingJobs>
    </hudson.plugins.buildblocker.BuildBlockerProperty>
    <org.jenkinsci.plugins.gogs.GogsProjectProperty plugin="[email protected]">
      <gogsSecret>XXXXXXXXXXXXX</gogsSecret>
      <gogsUsePayload>false</gogsUsePayload>
    </org.jenkinsci.plugins.gogs.GogsProjectProperty>
  </properties>
  <definition class="org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition" plugin="[email protected]">
    <scm class="hudson.plugins.git.GitSCM" plugin="[email protected]">
      <configVersion>2</configVersion>
      <userRemoteConfigs>
        <hudson.plugins.git.UserRemoteConfig>
          <url>[email protected]:git-admin/SF-Firefly-RK3399.git</url>
          <credentialsId>XXXXXXXXXXXXXX</credentialsId>
        </hudson.plugins.git.UserRemoteConfig>
      </userRemoteConfigs>
      <branches>
        <hudson.plugins.git.BranchSpec>
          <name>*/fresh_after_opersys_patches</name>
        </hudson.plugins.git.BranchSpec>
      </branches>
      <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
      <submoduleCfg class="list"/>
      <extensions>
        <hudson.plugins.git.extensions.impl.CloneOption>
          <shallow>true</shallow>
          <noTags>false</noTags>
          <reference>[email protected]:git-admin/SF-Firefly-RK3399.git</reference>
          <timeout>240</timeout>
          <depth>1</depth>
          <honorRefspec>true</honorRefspec>
        </hudson.plugins.git.extensions.impl.CloneOption>
        <hudson.plugins.git.extensions.impl.CheckoutOption>
          <timeout>240</timeout>
        </hudson.plugins.git.extensions.impl.CheckoutOption>
      </extensions>
    </scm>
    <scriptPath>Jenkinsfile</scriptPath>
    <lightweight>true</lightweight>
  </definition>
  <triggers/>
  <disabled>false</disabled>
</flow-definition>

答案1

好吧,在办公桌上绞尽脑汁几个小时后,我终于搞明白了。问题出在管道构建上的轻量级签出标志上。一旦禁用它(如下面的屏幕截图所示),10 分钟超时就会增加到我在高级克隆/获取行为中设置的值。

轻量级结帐标志

答案2

之前遇到过类似的问题,但我的情况是网络问题,无法通过 jenkins 从 git 下载大文件,下载一定量的数据后会自动断开连接

我建议检查网络连接、代理设置等......

相关内容