-
Bug
-
Resolution: Fixed
-
Major
-
Coverage 1.17, Jenkins 2.246.2
Hello,
I did update my code-coverage plugin, to the new coverage one, without major issues. But since, every two, three builds, the sources aren't copied over to the build artefacts, and not accessible through the coverage report.
The steps look like :
stage('Coverage') { steps { sh('gcovr --add-tracefile "coverage_*.json" --cobertura-pretty > coverage_unified.xml') recordCoverage(tools: [[parser: 'COBERTURA', pattern: 'coverage_unified.xml']], sourceCodeRetention: 'EVERY_BUILD', qualityGates: [ [threshold: 100.0, metric: 'LINE', baseline: 'PROJECT', criticality: 'UNSTABLE'], [threshold: 100.0, metric: 'BRANCH', baseline: 'PROJECT', criticality: 'UNSTABLE'], [threshold: 100.0, metric: 'CLASS', baseline: 'PROJECT', criticality: 'UNSTABLE'], [threshold: 100.0, metric: 'FILE', baseline: 'PROJECT', criticality: 'UNSTABLE'] ], enabledForFailure: true, failOnError: true, skipPublishingChecks: true ) } }
The issue looks like :
Errors during source code painting:Cannot create temporary directory in folder '/home/user/jenkins/workspace/project_name_PR-784' for the painted source filesjava.nio.file.NoSuchFileException: /media/jenkins/data/tmp/coverage106438501229433012 at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:397) at java.base/java.nio.file.Files.createDirectory(Files.java:700) at java.base/java.nio.file.TempFileHelper.create(TempFileHelper.java:134) at java.base/java.nio.file.TempFileHelper.createTempDirectory(TempFileHelper.java:171) at java.base/java.nio.file.Files.createTempDirectory(Files.java:1017) at io.jenkins.plugins.coverage.metrics.source.SourceCodePainter$AgentCoveragePainter.invoke(SourceCodePainter.java:152) at io.jenkins.plugins.coverage.metrics.source.SourceCodePainter$AgentCoveragePainter.invoke(SourceCodePainter.java:117) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:3578) at hudson.remoting.UserRequest.perform(UserRequest.java:211) at hudson.remoting.UserRequest.perform(UserRequest.java:54) at hudson.remoting.Request$2.run(Request.java:377) at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840)Can't copy zipped sources from agent to controllerjava.nio.file.NoSuchFileException: /home/user/jenkins/workspace/project_name_PR-784/coverage-sources.zip at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218) at java.base/java.nio.file.Files.newByteChannel(Files.java:380) at java.base/java.nio.file.Files.newByteChannel(Files.java:432) at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:422) at java.base/java.nio.file.Files.newInputStream(Files.java:160) at hudson.FilePath$CopyTo.invoke(FilePath.java:2687) at hudson.FilePath$CopyTo.invoke(FilePath.java:2677) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:3578) at hudson.remoting.UserRequest.perform(UserRequest.java:211) at hudson.remoting.UserRequest.perform(UserRequest.java:54) at hudson.remoting.Request$2.run(Request.java:377) at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78) [wrapped] java.io.IOException: Failed to copy /home/user/jenkins/workspace/project_name_PR-784/coverage-sources.zip to /var/lib/jenkins/jobs/project_new/branches/PR-784/builds/92/coverage-sources/coverage-sources.zip at hudson.FilePath.copyTo(FilePath.java:2626) at io.jenkins.plugins.coverage.metrics.source.SourceCodeFacade.copySourcesToBuildFolder(SourceCodeFacade.java:135) at io.jenkins.plugins.coverage.metrics.source.SourceCodePainter.processSourceCodePainting(SourceCodePainter.java:86) at io.jenkins.plugins.coverage.metrics.steps.CoverageReporter.paintSourceFiles(CoverageReporter.java:165) at io.jenkins.plugins.coverage.metrics.steps.CoverageReporter.computeCoverageBasedOnReferenceBuild(CoverageReporter.java:137) at io.jenkins.plugins.coverage.metrics.steps.CoverageReporter.publishAction(CoverageReporter.java:54) at io.jenkins.plugins.coverage.metrics.steps.CoverageRecorder.perform(CoverageRecorder.java:424) at io.jenkins.plugins.coverage.metrics.steps.CoverageRecorder.perform(CoverageRecorder.java:402) at io.jenkins.plugins.coverage.metrics.steps.CoverageStep$Execution.run(CoverageStep.java:365) at io.jenkins.plugins.coverage.metrics.steps.CoverageStep$Execution.run(CoverageStep.java:333) at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840)
I did add the paths to security / prism syntax highlighting already.
Anything I could be doing wrong ?
On another build, same steps, looks like :
Painting 164 source files on agent-> finished painting successfully-> zipping sources from folder '/home/user/jenkins-agent/workspace/project_name_PR-437/coverage' as '/home/user/jenkins-agent/workspace/project_name_PR-437/coverage-sources.zip'Copying painted sources from agent to build folder
I got concerned reading the jenkins security update :
https://github.com/jenkinsci/jep/tree/master/jep/235
https://www.jenkins.io/doc/book/security/controller-isolation/jep-235/
Could it be linked ?