GC 开销限制超过 运行 版本 5.5 中的后台任务

GC overhead limit exceeded running background task in version 5.5

我运行使用以下包装器配置设置安装 SonarQube 5.5。

wrapper.java.initmemory=3
wrapper.java.maxmemory=4096

我仍然得到以下堆栈跟踪,这个项目已经 运行 使用 sonarqube 5.3 成功。

2016.05.09 11:14:09 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute coverage measures | time=105ms
2016.05.09 11:14:09 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute comment measures | time=120ms
2016.05.09 11:14:14 INFO  [o.s.s.c.s.ComputationStepExecutor] Copy custom measures | time=5667ms
2016.05.09 11:14:15 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute duplication measures | time=424ms
2016.05.09 11:14:26 ERROR [o.s.s.c.c.ComputeEngineContainerImpl] Cleanup of container failed
java.lang.OutOfMemoryError: GC overhead limit exceeded
2016.05.09 11:14:26 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Failed to execute task AVSWNiXkOySW07vtMalp
java.lang.OutOfMemoryError: GC overhead limit exceeded
    at java.util.Arrays.copyOfRange(Arrays.java:3664) ~[na:1.8.0_45]
    at java.lang.StringBuffer.toString(StringBuffer.java:671) ~[na:1.8.0_45]
    at java.io.StringWriter.toString(StringWriter.java:210) ~[na:1.8.0_45]
    at org.apache.commons.lang.Entities.escape(Entities.java:838) ~[commons-lang-2.6.jar:2.6]
    at org.apache.commons.lang.StringEscapeUtils.escapeXml(StringEscapeUtils.java:620) ~[commons-lang-2.6.jar:2.6]
    at org.sonar.server.computation.step.DuplicationDataMeasuresStep$DuplicationVisitor.appendDuplication(DuplicationDataMeasuresStep.java:129) ~[sonar-server-5.5.jar:na]

内存调整必须在sonar.properties:

  • sonar.web.javaOpts(对于 Web 服务器 JVM)
  • sonar.ce.javaOpts(对于计算引擎 JVM)
  • sonar.search.javaOpts(对于 JVM 运行 ElasticSearch)。

在您的情况下,内存异常发生在后台任务中,因此它与计算引擎有关(请参阅 SonarQube architecture 了解更多信息)。

wrapper.conf 中的设置与此处无关,应保持不变(因此文件中出现 # DO NOT EDIT THE FOLLOWING SECTIONS 警告)。