自升级到 Jenkins 1.502 以来,通过 SSH 启动的远程 UNIX 从属服务器上使用 git 的任何作业都会失败,
hudson.util.IOException2: remote file operation failed: /var/ciworkspaces/web/workspace/DFT.BA Live at hudson.remoting.Channel@14930f2a:web-pampas
at hudson.FilePath.act(FilePath.java:861)
at hudson.FilePath.act(FilePath.java:838)
at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:956)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1123)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1342)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:683)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:588)
at hudson.model.Run.execute(Run.java:1568)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:237)
Caused by: java.io.IOException: Unable to serialize hudson.FilePath$FileCallableWrapper@3e2c693b
at hudson.remoting.UserRequest.serialize(UserRequest.java:166)
at hudson.remoting.UserRequest.<init>(UserRequest.java:62)
at hudson.remoting.Channel.call(Channel.java:671)
at hudson.FilePath.act(FilePath.java:854)
... 11 more
Caused by: java.io.NotSerializableException: hudson.model.FreeStyleBuild
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at hudson.remoting.UserRequest._serialize(UserRequest.java:155)
at hudson.remoting.UserRequest.serialize(UserRequest.java:164)
... 14 more
Finished: FAILURE
我找到了几页关于这个错误的资料(一,二),但对于它是什么或如何修复它尚无定论。
这发生在所有使用 SSH 启动的从属服务器上,或者Launch slave via execution of command on the Master
在使用 git 时(可能是其他 SCM,由于我们只使用 git,因此未进行测试)。没有附加 git repos 的作业可以正常工作。
我已经验证了文件权限,并且当用户slave.jar
运行时,我可以使用 CD 进入工作区目录,创建作业目录并克隆 git repo。我尝试删除所有复制过来的 *.jar 文件并重新启动从属服务器,但它们仍然不起作用。
自从从 1.454 升级到 1.502 以来只发生过一次这种情况,之前从属服务器工作正常,没有任何问题。
其他可能有用的信息;
[sr@pampas ~]$ cat /etc/redhat-release
CentOS release 6.3 (Final)
[sr@pampas ~]$ java -version
java version "1.7.0_09-icedtea"
OpenJDK Runtime Environment (rhel-2.3.5.3.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
主从服务器都一样
答案1
由于 Jenkins 几乎每周都会发布,因此也可能会出现错误。
您应该简单地回滚到旧版本或等待下一个版本。
检查他们的错误跟踪器可能有助于找到解决方法,并帮助尽早解决问题。