【发布时间】:2012-08-01 16:54:26
【问题描述】:
我们使用 Jenkins CI(版本 1.454)作为自动化测试的执行引擎(通过 Ant 触发)。我的一项测试至少运行 1-2 天。我无法完全找到,因为 Jenkins 总是在我的测试完成之前终止它。上次约 20,5 小时后。
我们安装了“构建超时”插件,但有问题的测试项目没有配置超时,所以它不应该中断。测试在从节点上运行。全局 Jenkins 配置不包含任何超时设置。
我见过另外两个人有类似的问题,但到目前为止还没有答案
堆栈跟踪:
INFO: Test-Linux-lts-mc #31 aborted
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at hudson.remoting.Request.call(Request.java:127)
at hudson.remoting.Channel.call(Channel.java:681)
at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:158)
at $Proxy37.join(Unknown Source)
at hudson.Launcher$RemoteLauncher$ProcImpl.join(Launcher.java:859)
at hudson.Launcher$ProcStarter.join(Launcher.java:345)
at hudson.tasks.Ant.perform(Ant.java:217)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:703)
at hudson.model.Build$RunnerImpl.build(Build.java:178)
at hudson.model.Build$RunnerImpl.doRun(Build.java:139)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:473)
at hudson.model.Run.run(Run.java:1408)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:238)
控制台日志不显示任何错误或超时指示。它只是说构建中止并清理节点工作区。
【问题讨论】:
-
并不是说这解决了实际问题,但是您确定需要这么长时间才能运行的测试属于持续集成引擎吗?
-
因为我们想定期运行它们(每 6 小时),我认为可以。这个测试是一个例外,需要更长的时间,但由于我们已经建立了框架来设置和测试我们的应用程序,并且通常测试类似于其他(较短的)测试,它有点属于那里。对我们来说,Jenkins 是一个执行调度器。
-
这似乎是来自您的主人的日志。你能分享从奴隶的日志吗?
-
问题已解决:我的 ant 脚本开始测试时出现问题。它不是通过 ant 启动测试,而是在 ant 包装器中使用 Java 任务。用 ant 调用替换纯 Java 调用解决了我的问题。
标签: ant continuous-integration jenkins