进程“Gradle Test Executor”以非零退出值 29 完成

Dmi*_*tov 6 java gradle

我的一项测试任务失败,任何日志中都没有任何明显的错误消息:

:midonet-cluster:测试失败

失败:构建失败并出现异常。

* 出了什么问题:任务“:midonet-cluster:test”执行失败。

进程“Gradle Test Executor 12”以非零退出值 29 完成

这是堆栈跟踪:

org.gradle.api.tasks.TaskExecutionException:任务“:midonet-cluster:test”执行失败。[17/1998] 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:98) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:68 )在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 在 org. gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) 在 org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46) 在 org.gradle.api。 internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) 在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 在 org.gradle.api.internal.tasks。 org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute.execute(ExecuteAtMostOnceTaskExecuter.java:43) (DefaultTaskGraphExecuter.java:236) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.execute(DefaultTaskGraphExecuter.java:228) 在 org.gradle.internal.Transformers$4.transform(Transformers.java:169) 在 org. gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute( DefaultTaskGraphExecuter.java:228) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:215) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:77) 在 org 。 aphexecuter.execute (DefaultTaskGraphExecuter.java:113) 在 org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:

引起原因:org.gradle.process.internal.ExecException:进程“Gradle Test Executor 11”在 org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:369) 处以非零退出值 29 完成org.gradle.process.internal.worker.DefaultWorkerProcess.waitForStop(DefaultWorkerProcess.java:190) 在 org.gradle.process.internal.worker.DefaultWorkerProcessBuilder$MemoryRequestingWorkerProcess.waitForStop(DefaultWorkerProcessBuilder.java:228) 在 org.gradle.api。 org.gradle.api.internal.tasks.testing.processors.RestartEveryNTestClassProcessor.endBatch(RestartEveryNTestClassProcessor.java:63) 在org.gradle.api.internal.tasks.testing.worker.ForkingTestClassProcessor.stop(ForkingTestClassProcessor.java:122)。 Internal.tasks.testing.processors.RestartEveryNTestClassProcessor.stop(RestartEveryNTestClassProcessor.java:57) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24) 在 org.gradle.internal.dispatch.FailureHandlingDispatch.dispatch(FailureHandlingDispatch.java:29) 在 org.gradle.internal.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:132) 在 org.gradle.internal .dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33) 在 org.gradle.internal.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy .java:63) 在 org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)

没有失败的测试。

这似乎是一些资源问题,因为当我减少测试数量(通过从测试任务中排除包)时问题就消失了。排除哪些测试并不重要。

如果禁用 gradle 守护进程,问题仍然存在。

Gradel 版本是 3.5.1,但 4.5.1 问题仍然存在。

在调试模式下运行任务不会显示任何新内容。我们可以检查失败的进程是否转移到“STARTED”状态,然后转移到“FAILED”状态。

这种情况总是发生在 80GB RAM 的 ubuntu16.04 机器上,有时在我的 16GB RAM 的 MAC 上。

任何有关如何解决或调试此问题的帮助将不胜感激!

提前谢谢了。

Dmi*_*tov 5

原来是主代码调用了System.exit(),因为一些测试没有关闭后端服务。我相信 gradle 可能会更好地处理这个问题:)