Initial setup integration failing

SonarQube 7.2.1, sonar-maven-plugin 3.4.1.1168

project configuration includes:

    				<!-- configure the sonar plugin for running Sonar -->
    				<plugin>
    					<groupId>org.sonarsource.scanner.maven</groupId>
    					<artifactId>sonar-maven-plugin</artifactId>
    					<version>${sonar.maven.version}</version>
    					<executions>
    						<execution>
    							<goals>
    								<goal>sonar</goal>
    							</goals>
    						</execution>
    					</executions>
    				</plugin>

When analysis starts, from command mvn -P sonar sonar:sonar I get response:
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.1.1168:sonar (default-cli) on project blah: Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher: Unable to load component interface org.sonar.api.batch.rule.ActiveRules: NullPointerException

Any clues on how to fix this?

Here is full stack trace:

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.1.1168:sonar (default-cli) on project udf-model-schema: Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher: Unable to load component interface org.sonar.api.batch.rule.ActiveRules: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.1.1168:sonar (default-cli) on project udf-model-schema: Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
	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:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher
	at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:67)
	at org.sonarsource.scanner.maven.SonarQubeMojo.execute(SonarQubeMojo.java:104)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	... 19 more
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher
	at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
	at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:621)
	at org.picocontainer.parameters.CollectionComponentParameter.getArrayInstance(CollectionComponentParameter.java:334)
	at org.picocontainer.parameters.CollectionComponentParameter.access$100(CollectionComponentParameter.java:49)
	at org.picocontainer.parameters.CollectionComponentParameter$1.resolveInstance(CollectionComponentParameter.java:139)
	at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:141)
	at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
	at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
	at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
	at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
	at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
	at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
	at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
	at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
	at org.picocontainer.DefaultPicoContainer.instantiateComponentAsIsStartable(DefaultPicoContainer.java:1034)
	at org.picocontainer.DefaultPicoContainer.addAdapterIfStartable(DefaultPicoContainer.java:1026)
	at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1003)
	at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:81)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:132)
	at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:71)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	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:498)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at com.sun.proxy.$Proxy21.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:171)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:128)
	at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:65)
	... 22 more
Caused by: java.lang.IllegalStateException: Unable to load component interface org.sonar.api.batch.rule.ActiveRules
	at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:65)
	at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
	at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
	at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
	at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
	at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
	at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
	at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
	at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
	at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
	at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
	at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
	at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
	at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
	at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
	... 58 more
Caused by: java.lang.NullPointerException
	at org.sonar.scanner.rule.DefaultActiveRulesLoader.readPage(DefaultActiveRulesLoader.java:102)
	at org.sonar.scanner.rule.DefaultActiveRulesLoader.load(DefaultActiveRulesLoader.java:62)
	at org.sonar.scanner.rule.ActiveRulesProvider.load(ActiveRulesProvider.java:98)
	at org.sonar.scanner.rule.ActiveRulesProvider.load(ActiveRulesProvider.java:61)
	at org.sonar.scanner.rule.ActiveRulesProvider.provide(ActiveRulesProvider.java:48)
	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:498)
	at org.picocontainer.injectors.MethodInjector.invokeMethod(MethodInjector.java:129)
	at org.picocontainer.injectors.MethodInjector.access$000(MethodInjector.java:39)
	at org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:113)
	at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
	at org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120)
	at org.picocontainer.injectors.CompositeInjector.decorateComponentInstance(CompositeInjector.java:58)
	at org.picocontainer.injectors.Reinjector.reinject(Reinjector.java:142)
	at org.picocontainer.injectors.ProviderAdapter.getComponentInstance(ProviderAdapter.java:96)
	at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
	at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
	at org.sonar.core.platform.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:63)
	... 72 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

I noticed in the server startup log these messages:

2018.08.02 01:53:44 INFO  ce[][o.s.c.c.CePluginRepository] Load plugins
2018.08.02 01:53:45 WARN  ce[][o.s.c.p.ComponentKeys] Bad component key: org.sonar.java.externalreport.ExternalRulesDefinition@3d921f9d. Please implement toString() method on class org.sonar.java.externalreport.ExternalRulesDefinition
2018.08.02 01:53:45 WARN  ce[][o.s.c.p.ComponentKeys] Bad component key: org.sonar.java.externalreport.ExternalRulesDefinition@2116b298. Please implement toString() method on class org.sonar.java.externalreport.ExternalRulesDefinition
2018.08.02 01:53:45 WARN  ce[][o.s.c.p.ComponentKeys] Bad component key: org.sonar.java.externalreport.ExternalRulesDefinition@7a9db43f. Please implement toString() method on class org.sonar.java.externalreport.ExternalRulesDefinition
2018.08.02 01:53:45 INFO  ce[][o.s.c.c.ComputeEngineContainerImpl] Running Community edition

What does this mean?

Hi,

You started by showing your pom configuration. You really don’t need to do that unless you’re trying to pin the project to analysis with a certain version of the SonarQube Scanner for Maven. What happens if you remove that & simply run mvn clean publish sonar:sonar?

Ann

[INFO] 
[INFO] --- sonar-maven-plugin:3.4.1.1168:sonar (default-cli) @ danube-core ---
[INFO] User cache: /home/mjaffe/.sonar/cache
[INFO] SonarQube version: 7.2.1
[INFO] Default locale: "en_US", source code encoding: "UTF-8"
[INFO] Publish mode
[INFO] Load global settings
[INFO] Load global settings (done) | time=659ms
[INFO] Server id: AWRIk3VFrEe_XNA6vi10
[INFO] User cache: /home/mjaffe/.sonar/cache
[INFO] Load/download plugins
[INFO] Load plugins index
[INFO] Load plugins index (done) | time=564ms
[INFO] Load/download plugins (done) | time=589ms
[INFO] Loaded core extensions: 
[INFO] Process project properties
[INFO] Load project repositories
[INFO] Load project repositories (done) | time=511ms
[INFO] Load quality profiles
[INFO] Load quality profiles (done) | time=539ms
[INFO] Load active rules
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] danube-core ........................................ FAILURE [  9.849 s]
[INFO] danube-core-models ................................. SUCCESS [  0.009 s]
[INFO] danube-core-sdk .................................... SUCCESS [  0.002 s]
[INFO] danube-core-stores ................................. SUCCESS [  0.001 s]
[INFO] danube-core-xforms ................................. SUCCESS [  0.002 s]
[INFO] danube-core-generator .............................. SUCCESS [  0.002 s]
[INFO] danube-core-queues ................................. SUCCESS [  0.001 s]
[INFO] danube-core-containers ............................. SUCCESS [  0.002 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.325 s
[INFO] Finished at: 2018-08-03T10:35:57-07:00
[INFO] Final Memory: 30M/351M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.1.1168:sonar (default-cli) on project danube-core: Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher: Unable to load component interface org.sonar.api.batch.rule.ActiveRules: NullPointerException -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

There are 1,518 rules set

More detail: server is running in Docker container, logs exposed to local host:

 ls -ltr  logs/sonar/
total 200
-rw-r--r--. 1 100      0 Aug  3 11:58 access.log
-rw-r--r--. 1 100   7701 Aug  3 12:07 es.log
-rw-r--r--. 1 100 184191 Aug  3 12:07 web.log
-rw-r--r--. 1 100   1510 Aug  3 12:08 ce.log
-rw-r--r--. 1 100   2032 Aug  3 12:08 sonar.log

Oddly, after setting log-level to DEBUG and running mvn clean sonar:sonar there was NO change to the logs on the server

Hi Mark,

I remember some people having the same issue in the past. It was caused by the Elastic Search index corruption on SonarQube server side. To fix, please:

  1. Stop the SQ server
  2. Remove the data/es folder
  3. Restart (the index will be recreated, which can take time depending on the size of your database)
1 Like

Excellent! That solved my issues. All is good now

Worked for me as well!
Same Problem at SonarQube 7.9.1.

Thank you very much!

Dear all,

We are running the official SonarQube 7.9.1 from the Docker Hub in production and also had the same error from Jenkins. Removing whole embedded ES database is actually a very bad idea. So I digged further.

[2020-01-27T18:41:21.991Z] INFO: Detected Jenkins
[2020-01-27T18:41:21.991Z] INFO: Load active rules
[2020-01-27T18:41:26.113Z] INFO: ------------------------------------------------------------------------
[2020-01-27T18:41:26.113Z] INFO: EXECUTION FAILURE
[2020-01-27T18:41:26.113Z] INFO: ------------------------------------------------------------------------
[2020-01-27T18:41:26.113Z] INFO: Total time: 12.599s
[2020-01-27T18:41:26.113Z] INFO: Final Memory: 11M/114M
[2020-01-27T18:41:26.113Z] INFO: ------------------------------------------------------------------------
[2020-01-27T18:41:26.113Z] ERROR: Error during SonarQube Scanner execution
[2020-01-27T18:41:26.113Z] ERROR: Unable to load component class org.sonar.scanner.report.ActiveRulesPublisher
[2020-01-27T18:41:26.113Z] ERROR: Caused by: Unable to load component interface org.sonar.api.batch.rule.ActiveRules
[2020-01-27T18:41:26.113Z] ERROR: 
[2020-01-27T18:41:26.113Z] ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

So what I did

Manual analysed the logfiles under /opt/sonarqube/logs;

  • SonarQube web* logfiles contained suspicous entries about the index forbidden read-only: web.2020-01-27.log:2020.01.27 23:58:28 ERROR web[][o.s.s.es.BulkIndexer] index [rules], type [rule], id [ar_3875], message [ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];]]
  • Elastic search es* logfiles contained suspicous entries: es.2020-01-27.log:2020.01.27 22:10:15 INFO es[][o.e.c.r.a.DiskThresholdMonitor] low disk watermark [85%] exceeded on [lUZ2LV4YSPO-dui6kr83Xg][sonarqube][/opt/sonarqube/data/es6/nodes/0] free: 7.6gb[12.2%], replicas will not be assigned to this node
  • Docker host disk usage was checked; df -h and was indeed 88% full
  • Docker prune was performed to free some disk space; docker system prune
  • SonarQube with Embedded Elasticsearch Container was manual stopped; docker stop 05be7e73592f
  • SonarQube was manual started; docker start 05be7e73592f

Hope this helps anybody in the future, it seems that ES graceful disallows API call writes to the indexer and puts it into read-only mode when the low disk watermark is reached as expected. Only this error propagating so far into the CI/CD pipeline is very weird and I hate Java for its unreadable stacktraces which are not very helpfull at all. That said here is the watermark doc from ES https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html