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

Copy failed on windows machine because of timestamp

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Component/s: copyartifact-plugin
    • Labels:
      None
    • Environment:
      Jenkins ver. 1.460, debian master.
      XP slave.

      Description

      After upgrading Copy artifacts plugin to 1.22 I have some problems of copy on a windows XP slave.
      Downgrading to 1.21 solves the problem.

      This is the same issue as https://issues.jenkins-ci.org/browse/JENKINS-11073

      ERROR: Failed to copy artifacts from job with filter: */
      hudson.util.IOException2: Failed to copy /var/lib/jenkins/jobs/(filepath).html to C:\jenkins\workspace(filepath).html
      at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyOne(FingerprintingCopyMethod.java:91)
      at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyAll(FingerprintingCopyMethod.java:63)
      at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:243)
      at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:211)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
      at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:705)
      at hudson.model.Build$RunnerImpl.build(Build.java:178)
      at hudson.model.Build$RunnerImpl.doRun(Build.java:139)
      at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:475)
      at hudson.model.Run.run(Run.java:1421)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:238)
      Caused by: hudson.util.IOException2: remote file operation failed: C:\jenkins\workspace(filepath).html at hudson.remoting.Channel@2b0857d2:build-w7
      at hudson.FilePath.act(FilePath.java:828)
      at hudson.FilePath.act(FilePath.java:814)
      at hudson.FilePath.touch(FilePath.java:1160)
      at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyOne(FingerprintingCopyMethod.java:79)
      ... 12 more
      Caused by: java.io.IOException: Failed to set the timestamp of C:\jenkins\workspace(filepath).html to 1334755712000
      at hudson.FilePath$19.invoke(FilePath.java:1166)
      at hudson.FilePath$19.invoke(FilePath.java:1160)
      at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2154)
      at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:287)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      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:60)
      at java.lang.Thread.run(Unknown Source)
      Build step 'Copy artifacts from another project' marked build as failure

        Issue Links

          Activity

          Hide
          aleksas aleksas added a comment - - edited

          Same here. Facing this issue after updating Jenkins to v.1.460 together with plugins.
          Env: Windows 2008 slaves, and master.

          Show
          aleksas aleksas added a comment - - edited Same here. Facing this issue after updating Jenkins to v.1.460 together with plugins. Env: Windows 2008 slaves, and master.
          Hide
          fredb Frederic Bouvier added a comment -

          Same for the flightgear project. Since upgrade to v1.22
          see: http://flightgear.simpits.org:8080/job/FlightGear-Win-Cmake/432/console

          Show
          fredb Frederic Bouvier added a comment - Same for the flightgear project. Since upgrade to v1.22 see: http://flightgear.simpits.org:8080/job/FlightGear-Win-Cmake/432/console
          Hide
          glimberg Grant Limberg added a comment -

          I'm also seeing this issue on a Windows 7 64 bit slave with Copy Artifacts plugin v1.22.

          Show
          glimberg Grant Limberg added a comment - I'm also seeing this issue on a Windows 7 64 bit slave with Copy Artifacts plugin v1.22.
          Hide
          lukelast Luke Last added a comment -

          I also had this problem with copy artifacts plugin v1.22 copying from an Ubuntu master to a windows 7 64bit slave. Going back to v1.21 solved the problem.

          Show
          lukelast Luke Last added a comment - I also had this problem with copy artifacts plugin v1.22 copying from an Ubuntu master to a windows 7 64bit slave. Going back to v1.21 solved the problem.
          Hide
          cbos Cees Bos added a comment -

          Same holds for us.
          Copy was done from a linux master to a windows slave.
          We had to revert the plugin to 1.21.

          Show
          cbos Cees Bos added a comment - Same holds for us. Copy was done from a linux master to a windows slave. We had to revert the plugin to 1.21.
          Hide
          munterauer Markus Unterauer added a comment - - edited

          In jenkins v1.474 this problem is still there

          Show
          munterauer Markus Unterauer added a comment - - edited In jenkins v1.474 this problem is still there
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Jesse Glick
          Path:
          src/main/java/hudson/plugins/copyartifact/FingerprintingCopyMethod.java
          http://jenkins-ci.org/commit/copyartifact-plugin/d86690cc2659fd2efa992391e4c216d7635db8e3
          Log:
          [FIXED JENKINS-13515] FingerprintingCopyMethod.copyOne can fail on Windows due to timestamp.

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: src/main/java/hudson/plugins/copyartifact/FingerprintingCopyMethod.java http://jenkins-ci.org/commit/copyartifact-plugin/d86690cc2659fd2efa992391e4c216d7635db8e3 Log: [FIXED JENKINS-13515] FingerprintingCopyMethod.copyOne can fail on Windows due to timestamp.
          Hide
          jglick Jesse Glick added a comment -

          Releasing 1.23 for this fix.

          Show
          jglick Jesse Glick added a comment - Releasing 1.23 for this fix.
          Hide
          cnogradi Chris Nogradi added a comment -

          I just installed Jenkins 1.483 and updated the Copy Artifacts plugin to 1.23 and got this error:

          hudson.util.IOException2: Failed to copy /srv/jenkins/jobs/ADL_Release/builds/2012-09-25_11-14-25/archive/adl.zip to d:/hudson/workspace/G2XXX_Release/LRU/GDU/Target/hw_tst/label/GDU_RELEASE/adl.zip
          at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyOne(FingerprintingCopyMethod.java:102)
          at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyAll(FingerprintingCopyMethod.java:65)
          at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:243)
          at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:215)
          at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
          at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717)
          at hudson.model.Build$BuildExecution.build(Build.java:199)
          at hudson.model.Build$BuildExecution.doRun(Build.java:160)
          at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
          at hudson.model.Run.execute(Run.java:1502)
          at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
          at hudson.model.ResourceController.execute(ResourceController.java:88)
          at hudson.model.Executor.run(Executor.java:236)
          Caused by: hudson.util.IOException2: remote file operation failed: d:/hudson/workspace/G2XXX_Release/LRU/GDU/Target/hw_tst/label/GDU_RELEASE/adl.zip at hudson.remoting.Channel@71b4f563:OLAWPB-AVNHUD00
          at hudson.FilePath.act(FilePath.java:848)
          at hudson.FilePath.act(FilePath.java:825)
          at hudson.FilePath.touch(FilePath.java:1243)
          at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyOne(FingerprintingCopyMethod.java:83)
          ... 12 more
          Caused by: java.io.IOException: Failed to set the timestamp of d:\hudson\workspace\G2XXX_Release\LRU\GDU\Target\hw_tst\label\GDU_RELEASE\adl.zip to 1348589954000
          at hudson.FilePath$19.invoke(FilePath.java:1249)
          at hudson.FilePath$19.invoke(FilePath.java:1243)
          at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2273)
          at hudson.remoting.UserRequest.perform(UserRequest.java:118)
          at hudson.remoting.UserRequest.perform(UserRequest.java:48)
          at hudson.remoting.Request$2.run(Request.java:287)
          at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
          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:60)
          at java.lang.Thread.run(Unknown Source)
          Build step 'Copy artifacts from another project' marked build as failure
          Archiving artifacts

          I was fine with Copy Artifacts v 1.21

          Show
          cnogradi Chris Nogradi added a comment - I just installed Jenkins 1.483 and updated the Copy Artifacts plugin to 1.23 and got this error: hudson.util.IOException2: Failed to copy /srv/jenkins/jobs/ADL_Release/builds/2012-09-25_11-14-25/archive/adl.zip to d:/hudson/workspace/G2XXX_Release/LRU/GDU/Target/hw_tst/label/GDU_RELEASE/adl.zip at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyOne(FingerprintingCopyMethod.java:102) at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyAll(FingerprintingCopyMethod.java:65) at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:243) at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:215) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717) at hudson.model.Build$BuildExecution.build(Build.java:199) at hudson.model.Build$BuildExecution.doRun(Build.java:160) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499) at hudson.model.Run.execute(Run.java:1502) at hudson.matrix.MatrixRun.run(MatrixRun.java:146) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:236) Caused by: hudson.util.IOException2: remote file operation failed: d:/hudson/workspace/G2XXX_Release/LRU/GDU/Target/hw_tst/label/GDU_RELEASE/adl.zip at hudson.remoting.Channel@71b4f563:OLAWPB-AVNHUD00 at hudson.FilePath.act(FilePath.java:848) at hudson.FilePath.act(FilePath.java:825) at hudson.FilePath.touch(FilePath.java:1243) at hudson.plugins.copyartifact.FingerprintingCopyMethod.copyOne(FingerprintingCopyMethod.java:83) ... 12 more Caused by: java.io.IOException: Failed to set the timestamp of d:\hudson\workspace\G2XXX_Release\LRU\GDU\Target\hw_tst\label\GDU_RELEASE\adl.zip to 1348589954000 at hudson.FilePath$19.invoke(FilePath.java:1249) at hudson.FilePath$19.invoke(FilePath.java:1243) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2273) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:287) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 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:60) at java.lang.Thread.run(Unknown Source) Build step 'Copy artifacts from another project' marked build as failure Archiving artifacts I was fine with Copy Artifacts v 1.21
          Hide
          jglick Jesse Glick added a comment -

          @cnogradi: Are you perhaps using Cygwin or similar? Like similar code in core, this patch makes the error fatal on Unix but just logs a warning on Windows. It does the OS check using Functions.isWindows(), which just checks File.pathSeparatorChar==';'.

          Show
          jglick Jesse Glick added a comment - @cnogradi: Are you perhaps using Cygwin or similar? Like similar code in core, this patch makes the error fatal on Unix but just logs a warning on Windows. It does the OS check using Functions.isWindows() , which just checks File.pathSeparatorChar==';' .
          Hide
          cnogradi Chris Nogradi added a comment -

          The master source is linux (/srv/jenkins/jobs/ADL_Release/builds/2012-09-25_11-14-25/archive/adl.zip) the slave target is windows server 2008 R2 (d:/hudson/workspace/G2XXX_Release/LRU/GDU/Target/hw_tst/label/GDU_RELEASE/adl.zip). I do use cygwin on the slaves for building but I don't think that would affect the plugin since it runs before the shell is launched:

          Copied 2 artifacts from "ADL_Release" build number 4754
          [G2XXX_Release] $ sh -xe C:\Users\AVNHUD~1\AppData\Local\Temp\hudson394429127517277609.sh

          Show
          cnogradi Chris Nogradi added a comment - The master source is linux (/srv/jenkins/jobs/ADL_Release/builds/2012-09-25_11-14-25/archive/adl.zip) the slave target is windows server 2008 R2 (d:/hudson/workspace/G2XXX_Release/LRU/GDU/Target/hw_tst/label/GDU_RELEASE/adl.zip). I do use cygwin on the slaves for building but I don't think that would affect the plugin since it runs before the shell is launched: Copied 2 artifacts from "ADL_Release" build number 4754 [G2XXX_Release] $ sh -xe C:\Users\AVNHUD~1\AppData\Local\Temp\hudson394429127517277609.sh
          Hide
          jglick Jesse Glick added a comment -

          @cnogradi: what builders such as shell are used in the job is irrelevant. All that matters is the value of File.pathSeparatorChar in the slave JVM. Can you look up the system property path.separator in the slave’s diagnosis page (/computer/*/systemInfo)? I suspect it is returning : and so Jenkins is assuming the slave is Unix, yet the underlying Windows filesystem bugs (including inability to “touch”) remain.

          Show
          jglick Jesse Glick added a comment - @cnogradi: what builders such as shell are used in the job is irrelevant. All that matters is the value of File.pathSeparatorChar in the slave JVM. Can you look up the system property path.separator in the slave’s diagnosis page ( /computer/*/systemInfo )? I suspect it is returning : and so Jenkins is assuming the slave is Unix, yet the underlying Windows filesystem bugs (including inability to “touch”) remain.
          Hide
          cnogradi Chris Nogradi added a comment -

          Sorry about more ignorance regarding the builder shells. In the slave JVMs, path.separator is set to ';' for both slaves per Jenkins System Information pages for slave nodes.

          Show
          cnogradi Chris Nogradi added a comment - Sorry about more ignorance regarding the builder shells. In the slave JVMs, path.separator is set to ';' for both slaves per Jenkins System Information pages for slave nodes.
          Hide
          jglick Jesse Glick added a comment -

          Ah, I think I see the problem: the OS check is done on master whereas the plugin cares about the slave only.

          Rather than trying to look up the OS on the slave, I guess it is safer and simpler to just make the touch optional regardless of platform.

          Show
          jglick Jesse Glick added a comment - Ah, I think I see the problem: the OS check is done on master whereas the plugin cares about the slave only. Rather than trying to look up the OS on the slave, I guess it is safer and simpler to just make the touch optional regardless of platform.
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Jesse Glick
          Path:
          src/main/java/hudson/plugins/copyartifact/FingerprintingCopyMethod.java
          http://jenkins-ci.org/commit/copyartifact-plugin/d767e0071561287096790974503e1ed744ab1c83
          Log:
          [FIXED JENKINS-13515] Downgrade touch failure to warning regardless of platform.

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: src/main/java/hudson/plugins/copyartifact/FingerprintingCopyMethod.java http://jenkins-ci.org/commit/copyartifact-plugin/d767e0071561287096790974503e1ed744ab1c83 Log: [FIXED JENKINS-13515] Downgrade touch failure to warning regardless of platform.
          Hide
          jglick Jesse Glick added a comment -

          Try 1.24.

          Show
          jglick Jesse Glick added a comment - Try 1.24.

            People

            • Assignee:
              jglick Jesse Glick
              Reporter:
              blatinville Bertrand Latinville
            • Votes:
              15 Vote for this issue
              Watchers:
              19 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: