OutOfMemoryError в SonarQube 5.6.4

Я пытаюсь проанализировать (большой, ~900 тыс. строк кода) проект C#, который хорошо работал в более ранней версии SonarQube (5.4), но теперь терпит неудачу (см. трассировку стека ниже).

Я попытался выделить больше памяти для ComputeEngine (в версии 5.4 он, похоже, имел общие ресурсы с основным приложением), но все равно получаю ту же ошибку:

sonar.ce.javaOpts=-Xmx1G -Xms512m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true

(от: $SONAR_HOME\conf\sonar.properties)

Есть предложения, что мне нужно сделать?

Трассировки стека:

2016.12.28 12:13:18 INFO  [o.s.s.c.s.ComputationStepExecutor] Compute duplication measures | time=338ms
2016.12.28 12:15:51 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Failed to execute task AVlFV-iVMj2WmfjY00WT
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Arrays.java:3664) ~[na:1.8.0_111]
    at java.lang.String.<init>(String.java:207) ~[na:1.8.0_111]
    at java.lang.StringBuilder.toString(StringBuilder.java:407) ~[na:1.8.0_111]
    at org.sonar.server.computation.step.DuplicationDataMeasuresStep$DuplicationVisitor.createXmlDuplications(DuplicationDataMeasuresStep.java:104) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.step.DuplicationDataMeasuresStep$DuplicationVisitor.computeDuplications(DuplicationDataMeasuresStep.java:84) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.step.DuplicationDataMeasuresStep$DuplicationVisitor.visitFile(DuplicationDataMeasuresStep.java:79) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visitNode(DepthTraversalTypeAwareCrawler.java:79) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visitImpl(DepthTraversalTypeAwareCrawler.java:51) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visit(DepthTraversalTypeAwareCrawler.java:39) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visitChildren(DepthTraversalTypeAwareCrawler.java:98) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visitImpl(DepthTraversalTypeAwareCrawler.java:54) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visit(DepthTraversalTypeAwareCrawler.java:39) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visitChildren(DepthTraversalTypeAwareCrawler.java:98) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visitImpl(DepthTraversalTypeAwareCrawler.java:54) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visit(DepthTraversalTypeAwareCrawler.java:39) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visitChildren(DepthTraversalTypeAwareCrawler.java:98) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visitImpl(DepthTraversalTypeAwareCrawler.java:54) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.component.DepthTraversalTypeAwareCrawler.visit(DepthTraversalTypeAwareCrawler.java:39) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.step.DuplicationDataMeasuresStep.execute(DuplicationDataMeasuresStep.java:66) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.step.ComputationStepExecutor.executeSteps(ComputationStepExecutor.java:64) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:52) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.taskprocessor.report.ReportTaskProcessor.process(ReportTaskProcessor.java:75) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.taskprocessor.CeWorkerCallableImpl.executeTask(CeWorkerCallableImpl.java:81) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.taskprocessor.CeWorkerCallableImpl.call(CeWorkerCallableImpl.java:56) ~[sonar-server-5.6.4.jar:na]
    at org.sonar.server.computation.taskprocessor.CeWorkerCallableImpl.call(CeWorkerCallableImpl.java:35) ~[sonar-server-5.6.4.jar:na]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_111]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_111]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_111]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_111]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_111]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_111]
2016.12.28 12:15:51 ERROR [o.s.s.c.t.CeWorkerCallableImpl] Executed task | project=xxx.xxx.xxx.xxx.xxx | type=REPORT | id=AVlFV-iVMj2WmfjY00WT | time=244116ms

person Alix    schedule 28.12.2016    source источник
comment
Я думаю, вы должны использовать большее значение для Xmx, это максимальный объем памяти, который сонар будет использовать для выполнения задач.   -  person Tony    schedule 28.12.2016
comment
Хорошо, я увеличу значение еще больше. Хотя по умолчанию, похоже, 512 м. Кажется странным, что мне нужно более чем удвоить настройку по умолчанию.   -  person Alix    schedule 28.12.2016


Ответы (1)


Установка sonar.ce.javaOpts=-Xmx3G -Xms512m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true в $SONAR_HOME\conf\sonar.properties помогла.

person Alix    schedule 28.12.2016