We are using Sonarqube Developer Edition Version 9.6 (build 59041), Jenkins version 2.346.3 and SonarQube Scanner plugin version 2.14 to scan our CXX Yocto project.
Clean build analysis is successful but during report publish timeout reached with such stacktrace:
Stacktrace
10:46:03.049 INFO: ANALYSIS SUCCESSFUL, you can find the results at: http://sonarqube/dashboard?id=Project&branch=master
10:46:03.049 INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
10:46:03.049 INFO: More about the report processing at http://sonarqube/api/ce/task?id=AYLEhAWMUvZKEdKx_eiw
10:46:03.617 INFO: Analysis total time: 16:57.865 s
10:46:03.618 INFO: ------------------------------------------------------------------------
10:46:03.618 INFO: EXECUTION SUCCESS
10:46:03.618 INFO: ------------------------------------------------------------------------
10:46:03.618 INFO: Total time: 17:05.836s
10:46:03.877 INFO: Final Memory: 43M/1979M
10:46:03.877 INFO: ------------------------------------------------------------------------
11:28:57.629 [Pipeline] End of Pipeline
11:28:57.644 Timeout has been exceeded
11:28:57.644 java.lang.InterruptedException
11:28:57.644 at java.base/java.lang.Object.wait(Native Method)
11:28:57.644 at hudson.remoting.Request.call(Request.java:177)
11:28:57.644 at hudson.remoting.Channel.call(Channel.java:999)
11:28:57.645 at hudson.FilePath.act(FilePath.java:1194)
11:28:57.645 at hudson.FilePath.act(FilePath.java:1183)
11:28:57.645 at hudson.FilePath.list(FilePath.java:2133)
11:28:57.645 at hudson.FilePath.list(FilePath.java:2116)
11:28:57.645 at hudson.FilePath.list(FilePath.java:2100)
11:28:57.645 at hudson.plugins.sonar.utils.SonarUtils.extractReportTask(SonarUtils.java:91)
11:28:57.645 at hudson.plugins.sonar.utils.SonarUtils.addBuildInfoTo(SonarUtils.java:131)
11:28:57.645 at hudson.plugins.sonar.SonarBuildWrapper$AddBuildInfo.tearDown(SonarBuildWrapper.java:215)
11:28:57.645 at org.jenkinsci.plugins.workflow.steps.CoreWrapperStep$Callback.finished(CoreWrapperStep.java:207)
11:28:57.645 at org.jenkinsci.plugins.workflow.steps.CoreWrapperStep$Execution2$Callback2.finished(CoreWrapperStep.java:150)
11:28:57.645 at org.jenkinsci.plugins.workflow.steps.GeneralNonBlockingStepExecution$TailCall.lambda$onSuccess$0(GeneralNonBlockingStepExecution.java:140)
11:28:57.645 at org.jenkinsci.plugins.workflow.steps.GeneralNonBlockingStepExecution.lambda$run$0(GeneralNonBlockingStepExecution.java:77)
11:28:57.645 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
11:28:57.645 at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
11:28:57.645 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
11:28:57.645 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
11:28:57.645 at java.base/java.lang.Thread.run(Thread.java:829)
During research we have found that in file SonarUtils.java on 91 line searches for report path through all workspace. Our workspace size after Clean Build is more than 160GB, so this process is extremely slow.
This issue can be solved by passing Java property to sonar-scanner something like report.directory. If this property is passed, plugin will search report in this directory only and if this option is not specified, old logic with all workspace search should be executed.
I hope, this issue can be fixed ASAP.
Thank you!