Ошибка 500 во время выполнения бегуна сонара на Дженкинсе

Я получаю ошибку ниже при запуске автономного анализа Sonarqube на Jenkins. Сканер Sonarqube способен идентифицировать файлы, которые будут анализироваться, и может их проанализировать, но проблема заключается в том, что он пытается опубликовать проект на панели управления.

Когда я открываю URL-адрес http://vv123456:9000/api/ce/submit?projectKey=pkey&projectName=pname в браузере, он говорит "{" errors ": [{" msg ":" HTTP-метод POST требуется "}]}", что означает, что веб-сервис sonarqube в порядке.

Ошибка сборки Jenkins:

ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
    at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
    at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
    at org.sonar.runner.api.Runner.execute(Runner.java:100)
    at org.sonar.runner.Main.executeTask(Main.java:70)
    at org.sonar.runner.Main.execute(Main.java:59)
    at org.sonar.runner.Main.main(Main.java:53)
Caused by: org.sonarqube.ws.client.HttpException: Error 500 on [http://vv123456:9000/api/ce/submit?projectKey=pkey&projectName=pname][1]
    at org.sonarqube.ws.client.BaseResponse.failIfNotSuccessful(BaseResponse.java:34)
    at org.sonar.batch.bootstrap.BatchWsClient.failIfUnauthorized(BatchWsClient.java:99)
    at org.sonar.batch.bootstrap.BatchWsClient.call(BatchWsClient.java:69)
    at org.sonar.batch.report.ReportPublisher.upload(ReportPublisher.java:172)
    at org.sonar.batch.report.ReportPublisher.execute(ReportPublisher.java:127)
    at org.sonar.batch.phases.PublishPhaseExecutor.publishReportJob(PublishPhaseExecutor.java:64)
    at org.sonar.batch.phases.PublishPhaseExecutor.executeOnRoot(PublishPhaseExecutor.java:51)
    at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:86)
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236)
    at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:226)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
    at org.sonar.batch.task.ScanTask.execute(ScanTask.java:47)
    at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
    at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106)
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119)
    at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:79)
    at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
    ... 9 more

Ответ 1

В журналах SonarQube на сервере, где размещается веб-служба (vv123456 в моем случае), произошла ошибка, зарегистрированная как:

No such file or directory - C:/Windows/system32/config/systemprofile/AppData/Local/Temp

Итак, я добавил путь к временному местоположению в wrapper.conf как:

set.TMPDIR=/SonarQube/sonarqube-5.6/temp

Это решило проблему.

Ответ 2

Я тоже испытываю эту проблему. Глядя в журналы на /opt/sonar/logs/sonar.log, я вижу следующую ошибку:

Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (9122692 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.

Используемый совет здесь https://dev.mysql.com/doc/refman/5.6/en/packet-too-large.html

и здесь

PacketTooBigException при запуске анализа сонара

и здесь

http://codefabulae.blogspot.co.uk/2012/05/sonar-analysis-and-mysql-max-packet.html

Окончательным решением было записать это в мою конфигурацию mysql /etc/my.cnf:

[mysqld]
max_allowed_packet=32M

перезапустить mysqld

sudo service mysqld restart

и проверьте его через

mysql <insert user credentials here>
mysql> show variables like "max_allowed%";

а затем перезагрузите сонар

sudo service sonar restart

Затем моя сборка прекратила иметь ошибку 500, как упоминалось.

Вот как исправить проблему PacketTooBig, которая является вероятной основной причиной.

Ответ 3

Я нашел решение: Пользователь должен увеличить размер max_allowed_packet в файле Mysql My.config, а также строку соединения Mysql в файле sonar.config.

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&max_allowed_packet=512M 

Ответ 4

Попробуйте эту процедуру, это сработало для меня:

  • Остановить сервер Sonar
  • Перейдите в местоположение Sonarqube и удалите содержимое в папке temp.
  • Запустите сервер Sonar и запустите его снова.