Upgrade from 8.4.2 to 8.9 breaks scans

Upgraded from 8.4.2 to 8.9 lts version have broken our build.
We are using sonar-maven-plugin:3.9.1.2184 to perform the scan

This is the most relevant part of the logs, it pulls metrics from sonarqube successfully, when i curl the url myself i get a valid json file containing a lot of instructions, and the promptly crashes. Looks like its trying to read the data but breaks when it tries to open the file. No other part of the logs seems to have anything that would indicate an error.

This happens across all our projects, they are pure java with some xml configuration files.
Ive seen a similar issue earlier but it was fixed by uninstalling the CSS plugin

Ive looked a lot of places trying to find a similar issue but haven’t been able to find anything, anything that might help solve this issue would be greatly appreciated.

[INFO] 13:18:50.299 Load metrics repository
[DEBUG] 13:18:50.321 GET 200 http://sonarqube:9000/api/metrics/search?f=name,description,direction,qualitative,custom&ps=500&p=1 | time=22ms
[INFO] 13:18:50.337 Load metrics repository (done) | time=39ms
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Transformation 17.0.0:
[INFO] 
[INFO] Transformation ..................................... FAILURE [  7.036 s]
[INFO] IO Transformation .................................. SKIPPED
[INFO] AF Transformation .................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.403 s
[INFO] Finished at: 2021-12-01T13:18:50Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar (default-cli) on project transformation: null: MojoExecutionException: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar (default-cli) on project transformation: null
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:90)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke (Method.java:508)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException
    at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:67)
    at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:108)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:90)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke (Method.java:508)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.NullPointerException
    at java.io.Reader.<init> (Reader.java:89)
    at java.io.InputStreamReader.<init> (InputStreamReader.java:134)
    at org.sonarsource.analyzer.commons.ExternalRuleLoader.loadMetadataFile (ExternalRuleLoader.java:127)
    at org.sonarsource.analyzer.commons.ExternalRuleLoader.<init> (ExternalRuleLoader.java:70)
    at org.sonar.css.plugin.StylelintReportSensor.getStylelintRuleLoader (StylelintReportSensor.java:144)
    at org.sonar.css.plugin.StylelintReportSensor.<init> (StylelintReportSensor.java:60)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:83)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:57)
    at java.lang.reflect.Constructor.newInstance (Constructor.java:437)
    at org.picocontainer.injectors.AbstractInjector.newInstance (AbstractInjector.java:145)
    at org.picocontainer.injectors.ConstructorInjector$1.run (ConstructorInjector.java:342)
    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.getLocalInstance (DefaultPicoContainer.java:606)
    at org.picocontainer.DefaultPicoContainer.getComponents (DefaultPicoContainer.java:587)
    at org.sonar.core.platform.ComponentContainer.getComponentsByType (ComponentContainer.java:291)
    at org.sonar.scanner.bootstrap.AbstractExtensionDictionnary.completeScannerExtensions (AbstractExtensionDictionnary.java:82)
    at org.sonar.scanner.bootstrap.AbstractExtensionDictionnary.getExtensions (AbstractExtensionDictionnary.java:77)
    at org.sonar.scanner.bootstrap.AbstractExtensionDictionnary.getFilteredExtensions (AbstractExtensionDictionnary.java:67)
    at org.sonar.scanner.sensor.ModuleSensorExtensionDictionnary.selectSensors (ModuleSensorExtensionDictionnary.java:40)
    at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$0 (ModuleSensorsExecutor.java:52)
    at org.sonar.scanner.sensor.ModuleSensorsExecutor$$Lambda$207.000000002A0A5140.run (Unknown Source)
    at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy (ModuleSensorsExecutor.java:77)
    at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute (ModuleSensorsExecutor.java:52)
    at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart (ModuleScanContainer.java:82)
    at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:137)
    at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:123)
    at org.sonar.scanner.scan.ProjectScanContainer.scan (ProjectScanContainer.java:392)
    at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively (ProjectScanContainer.java:388)
    at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively (ProjectScanContainer.java:385)
    at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart (ProjectScanContainer.java:357)
    at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:137)
    at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:123)
    at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart (GlobalContainer.java:150)
    at org.sonar.core.platform.ComponentContainer.startComponents (ComponentContainer.java:137)
    at org.sonar.core.platform.ComponentContainer.execute (ComponentContainer.java:123)
    at org.sonar.batch.bootstrapper.Batch.doExecute (Batch.java:72)
    at org.sonar.batch.bootstrapper.Batch.execute (Batch.java:66)
    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:90)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke (Method.java:508)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke (IsolatedLauncherProxy.java:60)
    at com.sun.proxy.$Proxy24.execute (Unknown Source)
    at org.sonarsource.scanner.api.EmbeddedScanner.doExecute (EmbeddedScanner.java:189)
    at org.sonarsource.scanner.api.EmbeddedScanner.execute (EmbeddedScanner.java:138)
    at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute (ScannerBootstrapper.java:65)
    at org.sonarsource.scanner.maven.SonarQubeMojo.execute (SonarQubeMojo.java:108)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:90)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke (Method.java:508)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

Small update to the issue
Seems to be strictly related to the css plugin and being unable to find a file at this location when trying to init the StylelintRuleLoader
org/sonar/l10n/css/rules/stylelint/rules.json

Looking at the github it looks like the file is supposed to come from sonarqube itself

Deleting the css plugin jar fixes the issue and allows the scan to run, but doesnt seem like the right solution for longterm use of Sonarqube

hello @Nesmid,

I am trying to understand how this could happen. How did you upgrade from 8.4.2, did you keep any jars in the new installation directory of 8.9?

Something is strange with your distribution, can you try to scan against freshly installed 8.9 (i.e. not upgraded)?

Hey @saberduck
The install is a fresh one, we are using docker containers, the use of sonarqube is something we’ve been wanting to add to our pipeline for a while, but havent gotten around to it until now.
The upgrade went smooth once i uninstalled all plugins except for the jazz scm plugin, that i assumed wouldnt have been made builtin as a part of 8.5. Didnt do anything except keep the volumes used for the /data, /logs and /conf folders.
The install is completely fresh except for a jazz scm plugin needed for the source control, and some api keys. I can delete everything and keep it completely fresh if you think it will make a differences, but our config is pretty much just setting up the sonarqube.