[Jenkins]JDK版本过高导致的java.io.IOException: Remote call on xxxx failed
------------------------------------------------------
如需转载,请注明出处。
文章链接:https://www.cnblogs.com/dzblog/p/9946486.html
------------------------------------------------------
更新
2018-11-28:文章写于11月12日,今日查询官网发现,在Jenkins最新的weekly版本上已经支持了JDK11,个人未测试,若有需要请更新2.152以后的版本。
changelog信息:https://jenkins.io/changelog/
环境
Jenkins: 2.7
Slave: Mac OS
场景
发现Jenkin构建能够成功,不过在最后一步总会提示java.io.IOException: Remote call on xxxx failed
原因分析
遇到这种问题毫无头绪,不过猜测可能是master和slave机器连接这里的问题,查询官网发现https://issues.jenkins-ci.org/browse/JENKINS-46523,应该是JDK版本的原因导致。
查询构建机的java版本,发现是JDK11。
➜ Home java --version
java 11.0.1 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
另外发现官网有个Ticket:JENKINS-40689说目前不支持JDK9以上版本,截图如下:
所以猜测替换JDK版本到JDK8就能解决此问题。
着手解决
查看机器安装的JDK版本
发现有JDK11和JDK8两个版本,所以只需要切换到JDK8就可以了
➜ Home pkgutil --pkgs | grep jdk
com.oracle.jdk-11.0.1
com.oracle.jdk8u101
切换JDK版本
切换到Jenkins支持的JDK8。为了方便以后使用,改成灵活修改JDK的方式,编辑~/.bash_profile
# 设置JDK8
export JAVA_8_HOME=`/usr/libexec/java_home -v 1.8`
# 设置JDK11
export JAVA_11_HOME=`/usr/libexec/java_home -v 11.0` # 设置默认JDK为8,重启电脑会自动选择
export JAVA_HOME=$JAVA_8_HOME #能够方便的切换JDK
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
测试
# 输入jdk11
➜ Home jdk11
# 查看java版本
➜ Home java -version
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
# 输入jdk8
➜ Home jdk8
# 查看java版本
➜ Home java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
再次启动Jenkins
nohup java -jar slave.jar -jnlpUrl http://jenkins-url.com/computer/slave-macpro/slave-agent.jnlp -secret 63f9d5f0f1b5df887cbe72225d912a7ba253ef727c85aa143e3200e2ea54f278 >jenkinsslave.log &
再次构建,成功!
cheers~~
[Jenkins]JDK版本过高导致的java.io.IOException: Remote call on xxxx failed的更多相关文章
- jenkins 升级jdk到1.8.0 报java.io.IOException:Unable to read /var/lib/jenkins/config.xml
今天手动下载安装了jdk1.8.0, 并修改了配置文件,当前默认使用该版本的jdk.但是报出一下错误: 问题查到: https://issues.jenkins-ci.org/browse/JENKI ...
- hadoop集群启动报错: java.io.IOException: Incompatible clusterIDs
java.io.IOException: Incompatible clusterIDs in /export/hadoop-2.7.5/hadoopDatas/datanodeDatas2: nam ...
- JDK版本过高,导致Eclipse报错
1.JDK版本如果比较高,而使用的eclipse版本比较低,导致在eclispe中不能识别而报错. 2.点击Attach Source添加rt.jar后,又出现如下错误 3.这样的错误就是由于ec ...
- Eclipse移植项目时JDK版本不匹配Project facet Java version 1.7 is not supported
Eclipse移植项目时JDK版本不匹配Project facet Java version 1.7 is not supported 如果原有项目用的为JDK1.7,而自己的是低版本JDK,比如1. ...
- 高并发连接导致打开文件过多:java.io.IOException: Too many open files 解决方法
用 CentOS 做 API 接口服务器供其他终端调用时,并发量高会报错:java.io.IOException: Too many open files. 其原因是在 Linux 下默认的Socke ...
- Tomcat9.0.13 Bug引发的java.io.IOException:(打开的文件过多 Too many open files)导致服务假死
问题背景: 笔者所在的项目组最近把生产环境Tomcat迁移到Linux,算是顺利运行了一段时间,最近一个低概率密度的(too many open files)问题导致服务假死并停止响应客户端客户端请求 ...
- hive使用python脚本导致java.io.IOException: Broken pipe异常退出
反垃圾rd那边有一个hql,在执行过程中出现错误退出,报java.io.IOException: Broken pipe异常,hql中使用到了python脚本,hql和python脚本最近没有人改过, ...
- java.io.ioexception failed to mkdirs jenkins xcode || jenkins 无法创建新文件
=========================================================== FATAL: Failed to mkdirs: /Users/chenqing ...
- Jenkins报错Caused: java.io.IOException: Cannot run program "sh" (in directory "D:\Jenkins\Jenkins_home\workspace\jmeter_test"): CreateProcess error=2, 系统找不到指定的文件。
想在本地执行我的python文件,我本地搭建了一个Jenkins,使用了execute shell来运行我的脚本,发现报错 [jmeter_test] $ sh -xe D:\tomcat\apach ...
随机推荐
- 【转】async & await 的前世今生(Updated)
async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了.但是这也给我们编程埋下了一些隐 ...
- 关于python-flask框架中的几个文件的理解
项目名.py— config.py—配置文件.一般数据库配置还有DEBUG的配置之类的卸载这个py文件中 models.py—模型文件.一般在这里面存储建立数据库的类. exts.py—过渡文件.因为 ...
- ehcache缓存使用
CacheUtils.java //工具类 保存cache缓存: CacheUtils.put(CacheUtils.SIGN_CACHE, childid + "_" + mNu ...
- 初识 Proxysql
1.ProxySQL 介绍和安装 ProxySQL 是一种高性能.高可用的开源中间件,适用于mysql和相关的数据库,如MariaDB官网:http://www.proxysql.com 安装 发行版 ...
- can't open the mysql.plugin table. please run mysql_upgrade to create it.
To initialize a fresh data directory, you basically (after setting your config file) just have to ru ...
- [转] C++中为什么要用指针,而不直接使用对象?
原文点击这里 问题描述 我刚从 Java 转到使用 C++ 进行面向对象开发,我发现一个很让我非常困惑的问题:C++ 中经常出现使用对象指针,而不是直接使用对象本身的代码,比如下面这个例子: C++ ...
- HDU 1846 巴什博奕
点这里去做题 最简单的巴什博奕 ,凑m+1 #include<bits/stdc++.h> int main() { int T,n,r,m; scanf("%d",& ...
- SQL数据库约束、默认和规则
数据的完整性 实体完整性 又称为行完整性,即数据库中的所有行都具有一个非空且没有重复的主键值 MSSQL中通过唯一索引.PRIMARY KEY约束.UNIQUE约束.INDENTITY属性等来强制主键 ...
- python基础自学 第五天(附带视频和相关资源)
数据类型 01.列表 List 是 python 中使用最频繁的数据类型,在其他语言中叫做数组 专门用于存储一串信息 列表用 [ ] 定义,数据之间用 , 分隔 列表的索引从 0 开始 补:索引就是数 ...
- 在注册表中查看Windows10系统激活密钥的方法
1 2 3 4 5 6 7 分步阅读 百度经验:jingyan.baidu.com 激活Windows10系统(非自己使用激活密钥激活的系统)以后,我们不一定清楚激活密钥是什么.如果想查看自己电脑 ...