Copy Artifacts Plugin Throws "IOException: Pipe is already closed"

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      Since updating to Jenkins 1.409 and Copy Artifacts Plugin 1.16, build jobs fail with an IOException when copying build artifacts from the Master to the current Slave.

      ERROR: Failed to copy artifacts from ABC Build with filter: _tests\UnitTests\bin\Debug**
      java.io.IOException: Pipe is already closed
      at hudson.remoting.PipeWindow.checkDeath(PipeWindow.java:83)
      at hudson.remoting.PipeWindow$Real.get(PipeWindow.java:165)
      at hudson.remoting.ProxyOutputStream._write(ProxyOutputStream.java:118)
      at hudson.remoting.ProxyOutputStream.write(ProxyOutputStream.java:103)
      at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
      at java.io.BufferedOutputStream.write(Unknown Source)
      at java.util.zip.DeflaterOutputStream.deflate(Unknown Source)
      at java.util.zip.DeflaterOutputStream.write(Unknown Source)
      at java.util.zip.GZIPOutputStream.write(Unknown Source)
      at java.io.BufferedOutputStream.write(Unknown Source)
      at org.apache.tools.tar.TarBuffer.writeBlock(TarBuffer.java:410)
      at org.apache.tools.tar.TarBuffer.writeRecord(TarBuffer.java:351)
      at hudson.org.apache.tools.tar.TarOutputStream.writeEOFRecord(TarOutputStream.java:356)
      at hudson.org.apache.tools.tar.TarOutputStream.finish(TarOutputStream.java:137)
      at hudson.org.apache.tools.tar.TarOutputStream.close(TarOutputStream.java:149)
      at hudson.util.io.TarArchiver.close(TarArchiver.java:119)
      at hudson.FilePath.writeToTar(FilePath.java:1596)
      at hudson.FilePath.copyRecursiveTo(FilePath.java:1521)
      at hudson.FilePath.copyRecursiveTo(FilePath.java:1450)
      at hudson.plugins.copyartifact.FilePathCopyMethod.copyAll(FilePathCopyMethod.java:51)
      at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:225)
      at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:199)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
      at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:649)
      at hudson.model.Build$RunnerImpl.build(Build.java:177)
      at hudson.model.Build$RunnerImpl.doRun(Build.java:139)
      at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:423)
      at hudson.model.Run.run(Run.java:1362)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:145)
      Caused by: java.io.IOException: Pipe is already closed
      at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:147)
      at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:131)
      at hudson.remoting.ProxyOutputStream$Chunk$1.run(ProxyOutputStream.java:185)
      at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: hudson.remoting.FastPipedInputStream$ClosedBy: The pipe was closed at...
      at hudson.remoting.FastPipedInputStream.close(FastPipedInputStream.java:112)
      at hudson.FilePath$32.invoke(FilePath.java:1517)
      at hudson.FilePath$32.invoke(FilePath.java:1511)
      at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1956)
      at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:270)
      at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at hudson.remoting.Engine$1$1.run(Engine.java:58)
      ... 1 more

      The Slaves are running as Windows Services under the Local System account. The slave.jar files have been updated to 1.409.

      The IOException is thrown no matter if the service is running under the Local System account, the Network Service account, under a Windows domain user account, or with desktop interaction enabled (see https://issues.jenkins-ci.org/browse/JENKINS-9456).

      If the Slave is started from a DOS prompt (java -Xrs -jar slave.jar -noCertificateCheck -jnlpUrl "https://buildserver.example.com/computer/esxi-01%20XP08/slave-agent.jnlp") the issue does not occur. The DOS prompt is started by a Windows domain user.

            Assignee:
            Jesse Glick
            Reporter:
            Dirk Weinhardt
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: