【问题标题】:Jenkins 1.509.2 fails build on UbuntuJenkins 1.509.2 在 Ubuntu 上构建失败
【发布时间】:2014-03-03 20:07:40
【问题描述】:

当构建主机运行 Ubuntu 13.04 时,此配置有效。自从使用 Jenkins 1.509.2 将 build master 升级到 Ubuntu 13.10 后,Ubuntu 12.04 build slave 在归档工件步骤期间失败。我在 Google 上搜索并检查了 Debian BTS 和 Launchpad,但没有发现任何有关此错误的信息。

Archiving artifacts
ERROR: Failed to archive artifacts: **/*
hudson.util.IOException2: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.StringBuffer
        at hudson.FilePath.copyRecursiveTo(FilePath.java:1942)
        at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:137)
        at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
        at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:802)
        at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:774)
        at hudson.model.Build$BuildExecution.post2(Build.java:183)
        at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:724)
        at hudson.model.Run.execute(Run.java:1600)
        at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
        at hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:237)
Caused by: java.util.concurrent.ExecutionException: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.StringBuffer
        at hudson.remoting.Channel$4.adapt(Channel.java:704)
        at hudson.remoting.Channel$4.adapt(Channel.java:699)
        at hudson.remoting.FutureAdapter.get(FutureAdapter.java:55)
        at hudson.FilePath.copyRecursiveTo(FilePath.java:1940)
        ... 10 more
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.StringBuffer
        at hudson.util.io.TarArchiver.visitSymlink(TarArchiver.java:79)
        at hudson.util.DirScanner$Glob.scan(DirScanner.java:126)
        at hudson.FilePath.writeToTar(FilePath.java:1978)
        at hudson.FilePath.access$1000(FilePath.java:168)
        at hudson.FilePath$36.invoke(FilePath.java:1919)
        at hudson.FilePath$36.invoke(FilePath.java:1915)
        at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2387)
        at hudson.remoting.UserRequest.perform(UserRequest.java:118)
        at hudson.remoting.UserRequest.perform(UserRequest.java:48)
        at hudson.remoting.Request$2.run(Request.java:326)
        at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Build step 'Archive the artifacts' changed build result to FAILURE

【问题讨论】:

  • 除了 Ubuntu 版本之外,您是否更改了其他任何内容?这看起来像是 JVM 版本或 Jenkins 版本的问题。
  • 我不知道。更新 Ubuntu 为 Jenkins 和 OpenJDK 带来了更新。我确实确认了 jenkins master 将 slave.jar 交付给 build slave。有什么特别需要调查的吗? Windows 构建从站工作。它是通过 JNLP 启动的。

标签: ubuntu jenkins


【解决方案1】:

我确定只有在工作区包含符号链接时才会发生崩溃。作为一种解决方法,我在 jenkins 继续归档工作区之前添加到我的(“执行 shell”)构建步骤中删除所有符号链接。

#
# Workaround Jenkins bug:
#
# Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.StringBuffer
#   at hudson.util.io.TarArchiver.visitSymlink(TarArchiver.java:79)
#
find . -type l -print0 | xargs -0 rm -f

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 2018-02-22
    相关资源
    最近更新 更多