2016-06-23 16 views
11

Viene visualizzato l'errore seguente quando si esegue l'analisi standarone di sonarqube su Jenkins. Lo scanner sonarqube è in grado di identificare i file da analizzare ed è in grado di analizzarli bene, ma il problema è quando si sta tentando di pubblicare il progetto sul dashboard.Errore 500 durante l'esecuzione del corridore Sonar su Jenkins

Quando apro l'URL http://vv123456:9000/api/ce/submit?projectKey=pkey&projectName=pname nel browser, esso dice "{" errori ": [{" msg ":" è necessaria metodo HTTP POST "}]}", il che significa che il webservice sonarqube va bene.

Errore Jenkins costruire:

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 
+0

500 significa errore del server interno. Sei sicuro del modo in cui hai usato per conformare il sonar? Inoltre quali sono le versioni degli strumenti? – Shiva

+0

@Shiva - Sì, posso vedere su Jenkins che l'analisi del sonar ha esito positivo, vedo il registro come di seguito: 14: 53: 46.992 INFO - Sensore sensore SCM 14: 53: 46.993 INFO - Il provider SCM per questo progetto è : svn 14: 53: 47.009 INFO - 4 file da analizzare 14: 53: 50.574 INFO - 4/4 file analizzati 14: 53: 50.575 INFO - Sensore sensore SCM (fatto) | time = 3583ms 14: 53: 50.576 INFO - Sensor Zero Coverage Sensor La versione che sto usando è - Jenkins 1.580.1, SonarQube 2.2.1 – Prasann

+0

Qualcosa di interessante in '$ SONARQUBE_HOME/logs/web.log'? –

risposta

9

Nei registri SonarQube sul server in cui web-servizio è ospitato (vv123456 nel mio caso), c'è stato un errore registrato come:

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

Così, ho aggiunto il percorso della posizione in temperatura wrapper.conf come:

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

Questo ha risolto il problema.

+0

Grazie per la tua risposta, questo mi ha aiutato! – groverboy

5

Anche io sto riscontrando questo problema. Guardando nei registri a /opt/sonar/logs/sonar.log posso vedere il seguente errore:

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. 

consiglio Usato da qui https://dev.mysql.com/doc/refman/5.6/en/packet-too-large.html

e qui

PacketTooBigException when running a sonar analysis

e qui

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

La soluzione finale è stato quello di scrivere questo al mio mysql config /etc/my.cnf:

[mysqld] 
max_allowed_packet=32M 

riavvio mysqld

sudo service mysqld restart 

e controllarlo tramite

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

e quindi riavviare il sonar

sudo service sonar restart 

Quindi il mio build ha smesso di avere l'errore 500 come menzionato.

Ecco come risolvere il problema PacketTooBig, che è una probabile causa principale.

0

Prova questa procedura, ha funzionato per me:

  1. Arrestare il Sonar Server
  2. Vai a Sonarqube posizione ed eliminare il contenuto in temperatura cartella
  3. avviare il server Sonar ed eseguire di nuovo.
1

ho trovato la soluzione: L'utente ha per aumentare la dimensione max_allowed_packet al Mysql My.config file così come stringa di connessione Mysql al sonar.config.

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