web-dev-qa-db-ja.com

JenkinsでのSonarランナー実行中のエラー500

Jenkinsでsonarqubeスタンドアロン分析を実行すると、以下のエラーが発生します。 sonarqubeスキャナーは、分析するファイルを識別し、それらを細かく分析することができますが、問題は、プロジェクトをダッシュ​​ボードに公開しようとするときです。

ブラウザでURL http:// vv123456:9000/api/ce/submit?projectKey = pkey&projectName = pname を開くと、 "{" errors :: {"msg": "HTTPメソッドPOSTが必要です"}]} "。これは、sonarqube Webサービスが正常であることを意味します。

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
11
Prasann

Webサービスがホストされているサーバー(私の場合はvv123456)のSonarQubeログで、次のようにログに記録されるエラーがありました:

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

そこで、wrapper.confの一時的な場所へのパスを次のように追加しました。

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

これで問題は解決しました。

8
Prasann

私もこの問題を経験しています。 /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を修正する方法です。

6
Ashley Frieze

私は解決策を見つけました:Mysql My.configファイルでのmax_allowed_pa​​cketサイズと、sonar.configでのMysql接続文字列を増やす必要があります。

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

この手順を試してください、私にとってはうまくいきました:

  1. ソナーサーバーを停止する
  2. Sonarqubeの場所に移動し、tempフォルダーの内容を削除します
  3. Sonar Serverを起動して再度実行します。
0
Geek