SonarQube в Azure конвейере - java .lang.OutOfMemoryError: G C превышен предел накладных расходов - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь сонаркубировать в конвейер сборки в Azure Devops. На этапе SonarQube Publi sh a появляется следующая ошибка:

java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.String.<init>(String.java:166)
at org.apache.commons.codec.binary.Hex.encodeHexString(Hex.java:161)
at org.sonar.core.hash.SourceLinesHashesComputer.computeHash(SourceLinesHashesComputer.java:63)
at org.sonar.core.hash.SourceLinesHashesComputer.addLine(SourceLinesHashesComputer.java:51)
at org.sonar.server.computation.task.projectanalysis.source.ComputeFileSourceData.read(ComputeFileSourceData.java:54)
at org.sonar.server.computation.task.projectanalysis.source.ComputeFileSourceData.compute(ComputeFileSourceData.java:48)
at org.sonar.server.computation.task.projectanalysis.step.PersistFileSourcesStep$FileSourceVisitor.visitFile(PersistFileSourcesStep.java:120)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visitNode(DepthTraversalTypeAwareCrawler.java:79)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visitImpl(DepthTraversalTypeAwareCrawler.java:51)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visit(DepthTraversalTypeAwareCrawler.java:39)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visitChildren(DepthTraversalTypeAwareCrawler.java:98)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visitImpl(DepthTraversalTypeAwareCrawler.java:54)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visit(DepthTraversalTypeAwareCrawler.java:39)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visitChildren(DepthTraversalTypeAwareCrawler.java:98)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visitImpl(DepthTraversalTypeAwareCrawler.java:54)
at org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler.visit(DepthTraversalTypeAwareCrawler.java:39)
at org.sonar.server.computation.task.projectanalysis.step.PersistFileSourcesStep.execute(PersistFileSourcesStep.java:89)
at org.sonar.server.computation.task.step.ComputationStepExecutor.executeSteps(ComputationStepExecutor.java:64)
at org.sonar.server.computation.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:52)
at org.sonar.server.computation.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:73)
at org.sonar.ce.taskprocessor.CeWorkerImpl.executeTask(CeWorkerImpl.java:134)
at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:97)
at org.sonar.ce.taskprocessor.CeWorkerImpl$$Lambda$739/1000704267.get(Unknown Source)
at org.sonar.ce.taskprocessor.CeWorkerImpl.withCustomizedThreadName(CeWorkerImpl.java:81)
at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:73)
at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:43)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

Я попытался установить SONAR_SCANNER_OPTS, как указано здесь: https://community.sonarsource.com/t/sonarqube-error-gc-overhead-limit-exceeded/12624/2 (я добавил его в конвейер в качестве переменной среды), но это не сработало. Даже с еще большим размером.

Есть предложения?

1 Ответ

0 голосов
/ 01 мая 2020

Если вы запустили сонар, используя задачу Maven или ANT. Установка переменной среды SONAR_SCANNER_OPTS, вероятно, не будет работать.

Поскольку задача Maven / ANT выполнит анализ сонара, вам необходимо установить пространство кучи JVM для Maven / Ant.

Для Maven: Вы должны установить MAVEN_OPTS переменную envrionment. Вы можете добавить его в конвейер как переменную окружения.

Или вы можете изменить значение MAVEN_OPTS в Расширенные настройки задачи Maven. см. скриншот ниже:

enter image description here

Для ANT: Вы должны установить ANT_OPTS переменную окружения (например, export ANT_OPTS=-Xmx256m), добавив ее в конвейер в качестве среды переменная.

Проверьте эту похожую тему для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...