首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins构建超时

Jenkins构建超时
EN

Stack Overflow用户
提问于 2018-06-14 19:20:16
回答 1查看 2.8K关注 0票数 1

我继承了一些Jenkins多分支管道构建。

它正在运行Jenkins进程来调用msbuild (.net应用程序)

我无法在超时步骤中找到任何包装构建的内容,但是我们的构建步骤在5分钟后就失败了。

我缺少了什么,如何将我的构建阶段延长到5分钟以上?

我完全不知所措,我期待着找到像超时这样的东西.或者类似的东西,但什么都没找到

更新

微调了构建日志:

代码语言:javascript
复制
10:50:58 running NUnit with timeout of 25 minutes
10:50:58 NUnit Console Runner 3.8.0
10:50:58 Copyright (c) 2018 Charlie Poole, Rob Prouse
10:50:58
10:50:58 Runtime Environment
10:50:58 OS Version: Microsoft Windows NT 6.2.9200.0
10:50:58 CLR Version: 4.0.30319.42000
10:50:58
... nunit output removed ...
10:54:49
10:56:02 NUnit execution timed out after 25 minutes
10:56:02 Message: null
10:56:02 StackTrace: java.lang.InterruptedException
10:56:02 at java.lang.ProcessImpl.waitFor(ProcessImpl.java:451)
10:56:02 at hudson.Proc$LocalProc.join(Proc.java:324)
10:56:02 at hudson.Proc.joinWithTimeout(Proc.java:170)
10:56:02 at com.mycompany.jenkins.plugins.nunit.NunitExecutor.run(NunitExecutor.java:79)
10:56:02 at com.mycompany.jenkins.plugins.BaseExecutor.start(BaseExecutor.java:35)
10:56:02 at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:229)
10:56:02 at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:153)
10:56:02 at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
10:56:02 at sun.reflect.GeneratedMethodAccessor463.invoke(Unknown Source)
10:56:02 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
10:56:02 at java.lang.reflect.Method.invoke(Method.java:498)
10:56:02 at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
10:56:02 at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
10:56:02 at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
10:56:02 at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
10:56:02 at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42)
10:56:02 at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
10:56:02 at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
10:56:02 at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:157)
10:56:02 at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
10:56:02 at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:133)
10:56:02 at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:120)
10:56:02 at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:155)
10:56:02 at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159)
10:56:02 at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
10:56:02 at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
10:56:02 at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
10:56:02 at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
10:56:02 at sun.reflect.GeneratedMethodAccessor426.invoke(Unknown Source)
10:56:02 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
10:56:02 at java.lang.reflect.Method.invoke(Method.java:498)
10:56:02 at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
10:56:02 at com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.dispatch(CollectionLiteralBlock.java:55)
10:56:02 at com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl.item(CollectionLiteralBlock.java:45)
10:56:02 at sun.reflect.GeneratedMethodAccessor453.invoke(Unknown Source)
10:56:02 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
10:56:02 at java.lang.reflect.Method.invoke(Method.java:498)
10:56:02 at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
10:56:02 at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
10:56:02 at com.cloudbees.groovy.cps.Next.step(Next.java:83)
10:56:02 at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
10:56:02 at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
10:56:02 at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122)
10:56:02 at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)
10:56:02 at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
10:56:02 at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$101(SandboxContinuable.java:34)
10:56:02 at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.lambda$run0$0(SandboxContinuable.java:59)
10:56:02 at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
10:56:02 at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:58)
10:56:02 at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
10:56:02 at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332)
10:56:02 at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83)
10:56:02 at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244)
10:56:02 at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232)
10:56:02 at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
10:56:02 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
10:56:02 at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
10:56:02 at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
10:56:02 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
10:56:02 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
10:56:02 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
10:56:02 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
10:56:02 at java.lang.Thread.run(Thread.java:745) 

它在上述例外中引用的代码的两个区域。

NunitExecutor.run(NunitExecutor.java:79),扩展BaseExecutor:

代码语言:javascript
复制
TaskListener listener ...

final Launcher.ProcStarter starter = launcher.launch().cmds(args).stdout(listener.getLogger()).stderr(listener.getLogger()).envs(env).pwd(ws);
Proc process = null;

try
{
    // step is an obj that extends Jenkins worfklow Step
    listener.getLogger().println("running NUnit with timeout of " + step.timeOut + " minutes");
    process = starter.start();
    final int exitCode = process.joinWithTimeout(timeOut, TimeUnit.MINUTES, listener);  --line 79

BaseExecutor.start(BaseExecutor.java:35),BaseExecutor扩展StepExecution:

代码语言:javascript
复制
@Override
public boolean start() throws Exception {
    try {
        getContext().onSuccess(run());  -- line 35

值timeOut = 25

如果舞台运行时间少于5分钟,这很好,但是如果它运行时间超过5分钟,它就会在超时的情况下失败,尽管我们说的是等待25分钟。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-14 19:54:33

问题在于Jenkins在步骤https://issues.jenkins-ci.org/browse/JENKINS-42561https://issues.jenkins-ci.org/browse/JENKINS-47006上引入了一个困难的超时

我们的自定义构建管道扩展了执行构建自定义函数的步骤,解决方案似乎是放弃步骤,转而使用DurableStep。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50864466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档