Closed
Description
Summary
If two SonarQube jobs are launched very close together against the same project, for example spring-security
, then the SCM background task fails.
This happens occasionally, more often during active development.
When the two jobs are from two different branches, the error is:
Caused by: java.lang.IllegalArgumentException: There's no changeset on line 117
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
at org.sonar.server.computation.task.projectanalysis.scm.ScmInfoImpl.getChangesetForLine(ScmInfoImpl.java:66)
at org.sonar.server.computation.task.projectanalysis.scm.DbScmInfo.getChangesetForLine(DbScmInfo.java:71)
at org.sonar.server.computation.task.projectanalysis.source.ScmLineReader.read(ScmLineReader.java:39)
at org.sonar.server.computation.task.projectanalysis.source.ComputeFileSourceData.read(ComputeFileSourceData.java:61)
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)
... 29 more
which is due to the fact that the two jobs are looking at potentially very different code bases, and the two jobs are writing and reading its SCM instrumentation off of the same location on the file system.
We may be able to disable the Sonar SCM Plugin to stop this error from happening since that would prevent this task from running.
I've posted a topic to SonarSource's community forum.