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

Not setting 'Keep past HTML reports' on a job that runs concurrently can cause java.io.IOException: Unable to delete <file>

      version 1.2

      When two builds attempt to archive the same output at the project level at the same time, the following output can be seen:

      [htmlpublisher] Archiving HTML reports...
      [htmlpublisher] Archiving at PROJECT level <source> to <destination>
      FATAL: HTML Publisher failure
      java.io.IOException: Unable to delete <destination>
      at hudson.Util.deleteFile(Util.java:239)
      at hudson.Util.deleteRecursive(Util.java:289)
      at hudson.Util.deleteContentsRecursive(Util.java:200)
      at hudson.Util.deleteRecursive(Util.java:280)
      at hudson.FilePath$11.invoke(FilePath.java:920)
      at hudson.FilePath$11.invoke(FilePath.java:918)
      at hudson.FilePath.act(FilePath.java:852)
      at hudson.FilePath.act(FilePath.java:834)
      at hudson.FilePath.deleteRecursive(FilePath.java:918)
      at htmlpublisher.HtmlPublisher.perform(HtmlPublisher.java:209)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
      at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:718)
      at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:693)
      at hudson.model.Build$BuildExecution.post2(Build.java:183)
      at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:640)
      at hudson.model.Run.execute(Run.java:1527)
      at hudson.model.Run.run(Run.java:1448)
      at com.tikal.jenkins.plugins.multijob.MultiJobBuild.run(MultiJobBuild.java:60)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:237)

      This is likely due to the setting of "BuildStepMonitor.NONE" meaning that each build does not wait for the previous one to complete before processing it's post-build steps. I believe this is correct when archiving is at the BUILD level as there is no clash of file access but for PROJECT level this should be changed to BuildStepMonitor.BUILD (if I have understood the javadoc's correctly)

        1. build1.txt
          10 kB
        2. build2.txt
          0.4 kB

          [JENKINS-23061] Not setting 'Keep past HTML reports' on a job that runs concurrently can cause java.io.IOException: Unable to delete <file>

            r2b2_nz Richard Bywater
            lrobertson39 Luke Robertson
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: