TFS 2017 上的 SonarQube 分析超时

Timout on SonarQube Analysis on TFS2017

我们的设置是 SonarQube 服务器 5.6.5 LTS 和 TFS2017 本地服务器。

我正在 运行 对一个大型解决方案进行代码分析,构建大约需要 15 分钟,而完成分析构建步骤大约需要 15 分钟。 在 "Complete SonarQube analysis" 构建步骤中,我收到以下错误:

2017-01-31T08:52:44.8355200Z 09:52:44.741  Post-processing succeeded.
2017-01-31T08:52:46.9293440Z Waiting on the SonarQube server to finish processing in order to determine the quality gate status.
2017-01-31T08:57:47.7364532Z ##[error]System.Management.Automation.RuntimeException: The analysis did not complete in the allotted time of 300 seconds. Consider setting the build variable SonarQubeAnalysisTimeoutInSeconds to a higher value. ---> System.Management.Automation.RuntimeException: The analysis did not complete in the allotted time of 300 seconds. Consider setting the build variable SonarQubeAnalysisTimeoutInSeconds to a higher value.
2017-01-31T08:57:47.7364532Z    --- Ende der internen Ausnahmestapelüberwachung ---
2017-01-31T08:57:47.7364532Z    bei System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
2017-01-31T08:57:47.7364532Z    bei System.Management.Automation.PowerShell.Worker.ConstructPipelineAndDoWork(Runspace rs, Boolean performSyncInvoke)
2017-01-31T08:57:47.7364532Z    bei System.Management.Automation.PowerShell.Worker.CreateRunspaceIfNeededAndDoWork(Runspace rsToUse, Boolean isSync)
2017-01-31T08:57:47.7364532Z    bei System.Management.Automation.PowerShell.CoreInvokeHelper[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
2017-01-31T08:57:47.7364532Z    bei System.Management.Automation.PowerShell.CoreInvoke[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
2017-01-31T08:57:47.7364532Z    bei Microsoft.TeamFoundation.DistributedTask.Handlers.LegacyVSTSPowerShellHost.VSTSPowerShellHost.Main(String[] args)
2017-01-31T08:57:47.7676884Z ##[error]LegacyVSTSPowerShellHost.exe completed with return code: -1.
2017-01-31T08:57:47.7676884Z ##[section]Finishing: Complete the SonarQube analysis

构建步骤控制选项中的超时设置为zero/infinite。我可以在哪里设置 SonarQubeAnalysisTimeoutInSeconds 或者是否有任何其他我应该设置得更高的超时设置?

如果我取消选中准备构建任务中的 "Include full analysis report in the build summary",构建将以绿色运行。 但是在这两种情况下,SonarQube 服务器日志中都有 OutOfMemoryError

2017.01.31 09:54:10 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute duplication measures | time=399ms
2017.01.31 09:54:56 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Failed to execute task AVnzuYyFhG9cSXnted2v
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Unknown Source) ~[na:1.8.0_121]
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) ~[na:1.8.0_121]
    at java.lang.AbstractStringBuilder.append(Unknown Source) ~[na:1.8.0_121]
    at java.lang.StringBuilder.append(Unknown Source) ~[na:1.8.0_121]
    at org.sonar.server.computation.step.DuplicationDataMeasuresStep$DuplicationVisitor.appendDuplication(DuplicationDataMeasuresStep.java:131) ~[sonar-server-5.6.5.jar:na]
...

这 2 个错误是否相关?

这两个错误相关的。您的构建任务正在等待服务器响应构建结果,但由于 OutOfMemoryError.

而没有响应

要授予进程更多内存,请编辑 $SONARQUBE_HOME/conf/sonar.properties,取消注释 sonar.ce.javaOpts 行,并根据需要调整值。

SQ 版本 6.4 和 SonarQube TFS 扩展版本 SonarSource.sonarqube-3.0.2 没有这个问题。但是我们刚刚升级到 SQ v7.0 并开始遇到这个问题。

即使在设置构建变量 "SonarQubeAnalysisTimeoutInSeconds" 之后,也无法正常工作。

错误 SonarQubeAnalysisTimeoutInSeconds 设置为 600,将用于轮询 SonarQube 任务完成情况。 分析未在分配的 600 秒时间内完成。考虑将构建变量 SonarQubeAnalysisTimeoutInSeconds 设置为更高的值。

此致, 三