Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-9540

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

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • copyartifact-plugin, core
    • None
    • Windows XP SP3, Sun JRE 1.6.25

      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.

          [JENKINS-9540] Copy Artifacts Plugin Throws "IOException: Pipe is already closed"

          Dirk Weinhardt created issue -

          Is there any additional information I could provide to help you reproducing this issue?

          Dirk Weinhardt added a comment - Is there any additional information I could provide to help you reproducing this issue?

          Alan Harder added a comment -

          Kohsuke, another instance of remoting problems with copyartifact.. can you take a look?

          Alan Harder added a comment - Kohsuke, another instance of remoting problems with copyartifact.. can you take a look?
          Alan Harder made changes -
          Component/s New: core [ 15593 ]
          Assignee Original: Alan Harder [ mindless ] New: Kohsuke Kawaguchi [ kohsuke ]

          This does not occur after explicitly clearing the workspace in the Jenkins UI (even if no workspace directory exists).

          Gardner Bickford added a comment - This does not occur after explicitly clearing the workspace in the Jenkins UI (even if no workspace directory exists).

          I have explicitly cleared the workspaces of all builds that copy artifacts from other builds through the UI. Additionally I have manually deleted all workspace folders of these projects on nodes the builds previously were executed at. Then I stopped the Jenkins slave console processes and restarted the slaves as Windows services.

          Builds using the Copy Artifacts Plugin can now be executed through the Service slave again. After running a few test builds I haven't seen any more IOExceptions.

          Dirk Weinhardt added a comment - I have explicitly cleared the workspaces of all builds that copy artifacts from other builds through the UI. Additionally I have manually deleted all workspace folders of these projects on nodes the builds previously were executed at. Then I stopped the Jenkins slave console processes and restarted the slaves as Windows services. Builds using the Copy Artifacts Plugin can now be executed through the Service slave again. After running a few test builds I haven't seen any more IOExceptions.

          Haven't seen this issue again after three more weeks of operation.

          Dirk Weinhardt added a comment - Haven't seen this issue again after three more weeks of operation.

          Thanks for the update Dirk. I will adjust the priority to reflect the existence of a work around.

          Gardner Bickford added a comment - Thanks for the update Dirk. I will adjust the priority to reflect the existence of a work around.

          Uwe Stuehler added a comment - - edited

          Might be related to JENKINS-9189 and fixed by 9cdd9cc0c5640beeb6bf36a4b26fa1ddcce7fd60.

          Uwe Stuehler added a comment - - edited Might be related to JENKINS-9189 and fixed by 9cdd9cc0c5640beeb6bf36a4b26fa1ddcce7fd60 .
          Uwe Stuehler made changes -
          Link New: This issue is related to JENKINS-9189 [ JENKINS-9189 ]

            jglick Jesse Glick
            dw Dirk Weinhardt
            Votes:
            9 Vote for this issue
            Watchers:
            19 Start watching this issue

              Created:
              Updated:
              Resolved: