【发布时间】:2018-03-28 17:23:02
【问题描述】:
我们的设置是 SonarQube 服务器 5.6.5 LTS 和 TFS2017 本地服务器。
我正在对一个大型解决方案进行代码分析,构建过程大约需要 15 分钟,而完成分析构建步骤的时间也差不多。 在“完成 SonarQube 分析”构建步骤中,我收到以下错误:
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
构建步骤控制选项中的超时设置为零/无限。我在哪里可以设置SonarQubeAnalysisTimeoutInSeconds 或者我应该设置更高的其他超时设置吗?
如果我在准备构建任务中取消选中“在构建摘要中包含完整分析报告”,则构建运行绿色。
但在这两种情况下,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]
...
这两个错误是否相关?
【问题讨论】:
-
当您选中“在构建摘要中包含完整分析报告”时,任务将等待分析完成,然后再继续执行下一个任务。如果您想将质量门状态放在构建报告中,这可能很有用,但会减慢构建速度。服务器上 SonarQube 进程的可用内存是多少?您可能需要查看System Requirements page 以了解有关 SonarQube 性能的更多信息。
-
我以前知道这个页面,因为我们在服务器上有 4GB 内存,所以我不关心配置 javaOpts 属性。我现在将这些值明确设置为建议的 2gb Xmx 和 512mb Xms - 现在一切都很好。
标签: tfs sonarqube msbuild-task