Jenkins从节点上构建自动化测试项目时报错:java.io.IOException: Unexpected termination of the channel

简介: 在mac电脑上配置了Jenkins从节点,在该从节点上构建app UI 自动化测试项目,运行一些用例后报如下错误:


java.io.EOFException
  at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2638)
  at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3113)
  at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:853)
  at java.io.ObjectInputStream.<init>(ObjectInputStream.java:349)
  at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:49)
  at hudson.remoting.Command.readFrom(Command.java:140)
  at hudson.remoting.Command.readFrom(Command.java:126)
  at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:36)
  at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:63)
Caused: java.io.IOException: Unexpected termination of the channel
  at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:77)
Caused: java.io.IOException: Backing channel 'app-ui-test' is disconnected.
  at hudson.remoting.RemoteInvocationHandler.channelOrFail(RemoteInvocationHandler.java:214)
  at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:283)
  at com.sun.proxy.$Proxy129.isAlive(Unknown Source)
  at hudson.Launcher$RemoteLauncher$ProcImpl.isAlive(Launcher.java:1150)
  at hudson.Launcher$RemoteLauncher$ProcImpl.join(Launcher.java:1142)
  at hudson.tasks.CommandInterpreter.join(CommandInterpreter.java:155)
  at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:109)
  at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66)
  at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
  at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
  at hudson.model.Build$BuildExecution.build(Build.java:206)
  at hudson.model.Build$BuildExecution.doRun(Build.java:163)
  at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
  at hudson.model.Run.execute(Run.java:1818)
  at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
  at hudson.model.ResourceController.execute(ResourceController.java:97)
  at hudson.model.Executor.run(Executor.java:429)
FATAL: Unable to delete script file /var/folders/__/x9pk6npn47g1g4t_n7t6h_t80000gn/T/jenkins5263477407196692208.sh
java.io.EOFException
  at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2638)
  at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:3113)
  at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:853)
  at java.io.ObjectInputStream.<init>(ObjectInputStream.java:349)
  at hudson.remoting.ObjectInputStreamEx.<init>(ObjectInputStreamEx.java:49)
  at hudson.remoting.Command.readFrom(Command.java:140)
  at hudson.remoting.Command.readFrom(Command.java:126)
  at hudson.remoting.AbstractSynchronousByteArrayCommandTransport.read(AbstractSynchronousByteArrayCommandTransport.java:36)
  at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:63)
Caused: java.io.IOException: Unexpected termination of the channel
  at hudson.remoting.SynchronousCommandTransport$ReaderThread.run(SynchronousCommandTransport.java:77)
Caused: hudson.remoting.ChannelClosedException: Channel "unknown": Remote call on app-ui-test failed. The channel is closing down or has closed down
  at hudson.remoting.Channel.call(Channel.java:950)
  at hudson.FilePath.act(FilePath.java:1070)
  at hudson.FilePath.act(FilePath.java:1059)
  at hudson.FilePath.delete(FilePath.java:1540)
  at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:123)
  at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66)
  at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
  at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
  at hudson.model.Build$BuildExecution.build(Build.java:206)
  at hudson.model.Build$BuildExecution.doRun(Build.java:163)
  at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:504)
  at hudson.model.Run.execute(Run.java:1818)
  at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
  at hudson.model.ResourceController.execute(ResourceController.java:97)
  at hudson.model.Executor.run(Executor.java:429)
Build step 'Execute shell' marked build as failure
Checking console output
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
Finished: FAILURE


原因:暂未知。因为是执行了一些用例之后才报错,所以从节点配置应该是没什么问题。

解决方法:重启Jenkins。重新启动Jenkins后再次构建项目,不报该错误。

重启Jenkins方法:

  • 登陆Jenkins的web管理页面,在页面网址后面加上/restart,回车;
  • 点击【是】或【Yes】按钮,等待页面刷新即可。
相关文章
|
5月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
2月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
3月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
335 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
2月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
84 3
|
2月前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
3月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
3月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
47 5
|
3月前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
67 2
|
3月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
3月前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
97 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法