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

Saving TAP reports from a Cygwin slave fails to copy

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • tap-plugin
    • None
    • Master is Linux (RHEL 6.4), Slave is Windows 7 (64-bit Cygwin). TAP Plugin is version 1.17

      I have a build job that runs on a remote slave and has the TAP plugin enabled. After a successful build, the plugin runs and while looking for the result files it gives the error below. The paths given below are both in the slave's workspace; if this is attempting to copy the result file to the master the destination path is very wrong, that should be somewhere under /var/lib/jenkins/jobs/

      TAP Reports Processing: START
      Looking for TAP results report in workspace using pattern: src/**/O.cygwin-x86_64/*.tap
      Saving reports...
      hudson.util.IOException2: Failed to copy C:\cygwin64\home\jenkins\workspace\epics-base-3.15-cyg64\src\ioc\db\test\O.cygwin-x86_64\arrShorthandTest.tap to C:/cygwin64/home/jenkins/workspace/epics-base-3.15-cyg64/src/ioc/db/test/O.cygwin-x86_64/arrShorthandTest.tap
      	at hudson.FilePath.copyTo(FilePath.java:1725)
      	at org.tap4j.plugin.TapPublisher.saveReports(TapPublisher.java:333)
      	at org.tap4j.plugin.TapPublisher.perform(TapPublisher.java:250)
      	at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776)
      	at hudson.model.Build$BuildExecution.post2(Build.java:183)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:726)
      	at hudson.model.Run.execute(Run.java:1600)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:241)
      Caused by: java.io.FileNotFoundException: /C:/cygwin64/home/jenkins/workspace/epics-base-3.15-cyg64/src/ioc/db/test/O.cygwin-x86_64/arrShorthandTest.tap (No such file or directory)
      	at java.io.FileOutputStream.open(Native Method)
      	at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
      	at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
      	at hudson.FilePath.write(FilePath.java:1621)
      	at hudson.FilePath.copyTo(FilePath.java:1718)
      	... 11 more
      Failed to save TAP reports
      

          [JENKINS-21468] Saving TAP reports from a Cygwin slave fails to copy

          This problem only occurs on my Cygwin build slave, which has a special configuration with additional directories and soft-links to get the Cygwin and Windows paths to match. That configuration has changed a bit since the above error message, here's another one when I tried this again yesterday:

          TAP Reports Processing: START
          Looking for TAP results report in workspace using pattern: src/**/O.cygwin-x86_64/*.tap
          Saving reports...
          java.io.IOException: Failed to copy \home\jenkins\cyg64-1\workspace\epics-base-3.14-cyg64\src\db\test\O.cygwin-x86_64\callbackTest.tap to /home/jenkins/cyg64-1/workspace/epics-base-3.14-cyg64/src/db/test/O.cygwin-x86_64/callbackTest.tap
          	at hudson.FilePath.copyTo(FilePath.java:1788)
          	at org.tap4j.plugin.TapPublisher.saveReports(TapPublisher.java:350)
          	at org.tap4j.plugin.TapPublisher.perform(TapPublisher.java:237)
          	at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:32)
          	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
          	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776)
          	at hudson.model.Build$BuildExecution.post2(Build.java:183)
          	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:725)
          	at hudson.model.Run.execute(Run.java:1695)
          	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
          	at hudson.model.ResourceController.execute(ResourceController.java:88)
          	at hudson.model.Executor.run(Executor.java:231)
          Caused by: java.io.FileNotFoundException: /home/jenkins/cyg64-1/workspace/epics-base-3.14-cyg64/src/db/test/O.cygwin-x86_64/callbackTest.tap (No such file or directory)
          	at java.io.FileOutputStream.open(Native Method)
          	at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
          	at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
          	at hudson.FilePath.write(FilePath.java:1683)
          	at hudson.FilePath.copyTo(FilePath.java:1781)
          	... 11 more
          Failed to save TAP reports
          

          It appears that the plugin is using absolute file paths, if it were possible to use only relative paths that might help fix the problem, but I have no idea whether that would be feasible at all.

          Andrew Johnson added a comment - This problem only occurs on my Cygwin build slave, which has a special configuration with additional directories and soft-links to get the Cygwin and Windows paths to match. That configuration has changed a bit since the above error message, here's another one when I tried this again yesterday: TAP Reports Processing: START Looking for TAP results report in workspace using pattern: src/**/O.cygwin-x86_64/*.tap Saving reports... java.io.IOException: Failed to copy \home\jenkins\cyg64-1\workspace\epics-base-3.14-cyg64\src\db\test\O.cygwin-x86_64\callbackTest.tap to /home/jenkins/cyg64-1/workspace/epics-base-3.14-cyg64/src/db/test/O.cygwin-x86_64/callbackTest.tap at hudson.FilePath.copyTo(FilePath.java:1788) at org.tap4j.plugin.TapPublisher.saveReports(TapPublisher.java:350) at org.tap4j.plugin.TapPublisher.perform(TapPublisher.java:237) at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:32) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776) at hudson.model.Build$BuildExecution.post2(Build.java:183) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:725) at hudson.model.Run.execute(Run.java:1695) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:231) Caused by: java.io.FileNotFoundException: /home/jenkins/cyg64-1/workspace/epics-base-3.14-cyg64/src/db/test/O.cygwin-x86_64/callbackTest.tap (No such file or directory) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:212) at java.io.FileOutputStream.<init>(FileOutputStream.java:160) at hudson.FilePath.write(FilePath.java:1683) at hudson.FilePath.copyTo(FilePath.java:1781) ... 11 more Failed to save TAP reports It appears that the plugin is using absolute file paths, if it were possible to use only relative paths that might help fix the problem, but I have no idea whether that would be feasible at all.

            kinow Bruno P. Kinoshita
            anjohnson Andrew Johnson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: