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

Copy to slave fails and getting error message "Pipe is already closed"

    Details

    • Similar Issues:

      Description

      After upgrading the latest jenkins version, getting continuous error message ""Pipe is already closed" while trying to access from master to slave. This is really scratch our heads. Now, we have jenkins version "1.596". Please look at this issue asap as this blocks our day to day work.

      "[copy-to-slave] Copying ' .pl, Include//, noarch/*/, .jar, *.zip, Test-XML//, tools-linux/*/, tools-solaris/*/, tools-windows/*/ ', excluding nothing, from 'file:/var/lib/jenkins/userContent/' on the master to 'file:/C:/Test/' on 'WIN2K8-X64'.
      FATAL: Pipe is already closed
      java.io.IOException: Pipe is already closed
      at hudson.remoting.PipeWindow.checkDeath(PipeWindow.java:108)
      at hudson.remoting.PipeWindow$Real.get(PipeWindow.java:203)
      at hudson.remoting.ProxyOutputStream._write(ProxyOutputStream.java:141)
      at hudson.remoting.ProxyOutputStream.write(ProxyOutputStream.java:109)
      at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
      at java.io.BufferedOutputStream.write(BufferedOutputStream.java:126)
      at com.jcraft.jzlib.DeflaterOutputStream.deflate(DeflaterOutputStream.java:144)
      at com.jcraft.jzlib.DeflaterOutputStream.write(DeflaterOutputStream.java:102)
      at java.io.BufferedOutputStream.write(BufferedOutputStream.java:122)
      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:125)
      at com.michelin.cio.hudson.plugins.copytoslave.MyFilePath.writeToTar(MyFilePath.java:230)
      at com.michelin.cio.hudson.plugins.copytoslave.MyFilePath.copyRecursiveTo(MyFilePath.java:143)
      at com.michelin.cio.hudson.plugins.copytoslave.CopyToSlaveBuildWrapper.setUp(CopyToSlaveBuildWrapper.java:133)
      at hudson.model.Build$BuildExecution.doRun(Build.java:154)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)
      at hudson.model.Run.execute(Run.java:1759)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      at hudson.model.ResourceController.execute(ResourceController.java:89)
      at hudson.model.Executor.run(Executor.java:240)
      Caused by: java.io.IOException: Pipe is already closed
      at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:153)
      at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:137)
      at hudson.remoting.ProxyOutputStream$Chunk$1.run(ProxyOutputStream.java:264)
      at hudson.remoting.PipeWriter$1.run(PipeWriter.java:158)
      at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:111)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at hudson.remoting.Engine$1$1.run(Engine.java:63)
      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 com.michelin.cio.hudson.plugins.copytoslave.MyFilePath$2.invoke(MyFilePath.java:138)
      at com.michelin.cio.hudson.plugins.copytoslave.MyFilePath$2.invoke(MyFilePath.java:130)
      at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2677)
      at hudson.remoting.UserRequest.perform(UserRequest.java:121)
      at hudson.remoting.UserRequest.perform(UserRequest.java:49)
      at hudson.remoting.Request$2.run(Request.java:324)
      ... 6 more

      Help us localize this page

        Attachments

          Activity

          Hide
          markus_heiden Markus Heiden added a comment -

          I got the same problem.

          The problem is that the plugin im my case copies the file with read-only privileges (444) into the destination directory. So if the file is already there, the plugin fails to overwrite it.

          I checked the directory privileges where the file resides and they are ok (755). I checked the umask of the user used to execute the job and it is ok (0022).

          If I delete the file or change its privileges to 644 the plugin succeeds to copy the file. But it uses 444 again, so I have to do this after each job run.

          Show
          markus_heiden Markus Heiden added a comment - I got the same problem. The problem is that the plugin im my case copies the file with read-only privileges (444) into the destination directory. So if the file is already there, the plugin fails to overwrite it. I checked the directory privileges where the file resides and they are ok (755). I checked the umask of the user used to execute the job and it is ok (0022). If I delete the file or change its privileges to 644 the plugin succeeds to copy the file. But it uses 444 again, so I have to do this after each job run.
          Hide
          markus_heiden Markus Heiden added a comment -

          I used a shell script build step as workaround, which sets the privileges to 644 after the file has been copied to the slave. So after doing this once manual, every worked again.

          Show
          markus_heiden Markus Heiden added a comment - I used a shell script build step as workaround, which sets the privileges to 644 after the file has been copied to the slave. So after doing this once manual, every worked again.
          Hide
          atul_kote Atul Kote added a comment -

          Thanks Markus. I will check it on my environment and let you know about the result. We have jenkins server on Linux box and client is Windows machine.

          Show
          atul_kote Atul Kote added a comment - Thanks Markus. I will check it on my environment and let you know about the result. We have jenkins server on Linux box and client is Windows machine.

            People

            • Assignee:
              svvivek Vivekanand SV
              Reporter:
              atul_kote Atul Kote
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: