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.
    • Similar Issues:
      Show 5 results

      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

        Attachments

          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: