0

I am trying to create a Jenkins build to generate reports for the client part of my app (eslint and test coverage).

I have other jobs that generate sonar reports for different projects on the same Jenkins and Sonar. To generate the lcov.info file I use mocha with lcov reporter.

One of the diferences is that for this project I use react with ES6 with babel, all the others are angular ES5.

My command to create sonar status looks like this:

C:\Programs\sonarqube-4.5.6\bin\sonar-runner.bat -Dsonar.projectBaseDir=%WORKSPACE% -Dproject.settings=D:\jenkins.space\jobs\XXX_Sonar_Runner\workspace\XXX_sonar.properties -Dsonar.branch=DEV_Jenkins -Dsonar.javascript.lcov.reportPath=XXX.Web/app/coverage/lcov.info -Dsonar.verbose=true -X && EXIT 0

If I remove the "-Dsonar.javascript.lcov.reportPath=XXX.Web/app/coverage/lcov.info" it works fine, and generates the rest of the results.

Do you have any idea why it fails?

The log looks like this:

    17:32:05.015 INFO  - Sensor org.sonar.plugins.javascript.lcov.UTCoverageSensor@6e7302d...
    17:32:05.016 INFO  - Analysing D:\jenkins.space\jobs\XXX_Sonar_Runner\workspace\XXX.Web\app\coverage\lcov.info
    17:32:05.026 DEBUG - Release semaphore on project : org.sonar.api.resources.Project@406ba622[id=14667,key=snapon:xxx:DEV_Jenkins,qualifier=TRK], with key batch-snapon:xxx:DEV_Jenkins
    INFO: ------------------------------------------------------------------------
    INFO: EXECUTION FAILURE
    INFO: ------------------------------------------------------------------------
    INFO: Total time: 51.057s
    INFO: Final Memory: 15M/236M
    INFO: ------------------------------------------------------------------------
    ERROR: Error during SonarQube Scanner execution
    java.lang.ArrayIndexOutOfBoundsException: 3
    at org.sonar.plugins.javascript.lcov.LCOVParser.parse(LCOVParser.java:104)
at org.sonar.plugins.javascript.lcov.LCOVParser.<init>(LCOVParser.java:54)
    at org.sonar.plugins.javascript.lcov.LCOVParser.create(LCOVParser.java:68)
    at org.sonar.plugins.javascript.lcov.UTCoverageSensor.saveMeasureFromLCOVFile(UTCoverageSensor.java:112)
    at org.sonar.plugins.javascript.lcov.UTCoverageSensor.analyse(UTCoverageSensor.java:85)
    at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:79)
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70)
    at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:119)
    at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:194)
    at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
    at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
    at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:233)
    at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:228)
    at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:221)
    at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
    at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
    at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:64)
    at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:51)
    at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:125)
    at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
    at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
    at org.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:173)
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95)
    at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
    at org.sonar.runner.batch.BatchIsolatedLauncher.executeOldVersion(BatchIsolatedLauncher.java:86)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.sonar.runner.impl.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:61)
    at com.sun.proxy.$Proxy0.executeOldVersion(Unknown Source)
    at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:283)
    at org.sonar.runner.api.EmbeddedRunner.runAnalysis(EmbeddedRunner.java:165)
    at org.sonar.runner.api.EmbeddedRunner.runAnalysis(EmbeddedRunner.java:152)
    at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:118)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:80)
    at org.sonarsource.scanner.cli.Main.main(Main.java:66)
G. Ann - SonarSource Team
  • 22,346
  • 4
  • 40
  • 76
Bogdan I.
  • 1
  • 1
  • It fails while reading "BRDA" line from lcov report, 4th number in the line failed to be read (it's number of times line was "taken"). So probably in your report you have "BRDA" with just 3 numbers (I have no idea why this happened). Can you confirm that? – Elena Vilchik Mar 17 '17 at 09:04
  • Yes, lcov file is missing in a few cases "BRDA"s 4th parameter. – Bogdan I. Mar 17 '17 at 15:57
  • I've created [ticket](https://jira.sonarsource.com/browse/SONARJS-962) to ignore such invalid line in SonarJS. It would help if you add example of lcov with missing number and give a link to a lcov reporter you use. – Elena Vilchik Mar 21 '17 at 14:44
  • I've added a part of the lcov file [here](https://gist.github.com/bogo26/e9d08105bb1f1b42447b09c7b5b1e63d) (line 18). I use istanbul for coverage. – Bogdan I. Mar 21 '17 at 16:05

0 Answers0