-
Bug
-
Resolution: Incomplete
-
Major
-
None
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)
Thanks for your time and investigation! I'm not familiar with those BuidStepMonitor options, would you be willing to create a pull request at https://github.com/jenkinsci/htmlpublisher-plugin that uses the appropriate NONE or BUILD based on the configuration of HTML Publisher?