mc1arke / sonarqube-community-branch-plugin

A plugin that allows branch analysis and pull request decoration in the Community version of Sonarqube
GNU Lesser General Public License v3.0
2.18k stars 509 forks source link

Version 1.10.0 not working with SonarQube 9.2.4 #522

Closed mastercard-rob closed 2 years ago

mastercard-rob commented 2 years ago

Describe the bug Have deployed SonarQube 9.2.4 using Helm and installed v1.10.0 of the plugin however when I scan a branch and pass the sonar.branch.name param to the sonarscanner I'm seeing the following message in the logs java.lang.IllegalStateException: Current edition does not support branch feature

To Reproduce Steps to reproduce the behavior:

  1. Scan a project from Jenkins
  2. Check the sonarqube server logs

Expected behavior sonarscanner should pass

Screenshots If applicable, add screenshots to help explain your problem.

Software Versions

mc1arke commented 2 years ago

Which helm chart are you using, and how are you loading and configuring the plugin in it?

1s1y commented 2 years ago

Hi, I have same problem on sonarque docker: 9.2.4.50792

λ mvn clean verify sonar:sonar \
  -Dsonar.projectKey=demo \
  -Dsonar.branch.name=temp \
  -Dsonar.host.url=http://virtual:9000 \
  -Dsonar.login=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
sonarqube_1  | 2021.12.31 07:37:04 ERROR web[AX4PayOKbUWIT3OOAAA0][o.s.s.w.WebServiceEngine] Fail to process request http://virtual:9000/api/ce/submit?projectKey=demo&projectName=demo&characteristic=branch%3Dtemp&characteristic=branchType%3DBRANCH
sonarqube_1  | java.lang.IllegalStateException: Current edition does not support branch feature
sonarqube_1  |  at com.google.common.base.Preconditions.checkState(Preconditions.java:508)
sonarqube_1  |  at org.sonar.server.ce.queue.BranchSupport.createComponentKey(BranchSupport.java:59)
sonarqube_1  |  at org.sonar.server.ce.queue.ReportSubmitter.submit(ReportSubmitter.java:82)
sonarqube_1  |  at org.sonar.server.ce.ws.SubmitAction.handle(SubmitAction.java:100)
sonarqube_1  |  at org.sonar.server.ws.WebServiceEngine.execute(WebServiceEngine.java:111)

In addition, below properties seem to be useless

# cat sonar.properties |grep "sonarqube-community-branch-plugin"
sonar.web.javaAdditionalOpts=-javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.10.0.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.10.0.jar=ce
# ls /opt/sonarqube/extensions/plugins/
README.txt                                    sonar-pmd-plugin-3.3.1.jar
sonar-findbugs-plugin-4.0.5.jar               sonarqube-community-branch-plugin-1.10.0.jar
sonar-l10n-zh-plugin-9.2.jar
λ cat docker-compose.yml
version: "3.7"

services:
  sonarqube:
    image: sonarqube:latest
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
      - sonarqube_temp:/opt/sonarqube/temp

networks:
  sonarnet:
    driver: bridge

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  sonarqube_temp:
1s1y commented 2 years ago

... I have found my mistake. I just modified the property file in a running docker container. The sonar server restarted without any respect of this change. And all modifications will no longer exist after current container destroyed.

So I specify the two environment properties within docker and it works now. Reference Here.

environment:
  - SONAR_WEB_JAVAADDITIONALOPTS=-javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.10.0.jar=web
  - SONAR_CE_JAVAADDITIONALOPTS=-javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.10.0.jar=ce     
ezintz commented 2 years ago

Not sure, but it seems something is odd with our integration for GitLab.

I've upgrade our SonarQube installation via docker to sonarqube:9-community and integrated the plugin, in version 1.10, with the arguments mentioned above. We get the following error in our GitLab pipeline:

ERROR: Error during SonarScanner execution
java.lang.NoClassDefFoundError: org/sonar/core/extension/CoreExtension
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
    at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
    at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
    at org.sonar.classloader.ClassRealm.loadClassFromSelf(ClassRealm.java:125)
    at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:37)
    at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
    at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
    at com.github.mc1arke.sonarqube.plugin.classloader.ElevatedClassLoaderFactory$1.loadClass(ElevatedClassLoaderFactory.java:80)
    at com.github.mc1arke.sonarqube.plugin.classloader.ElevatedClassLoaderFactory$1.loadClass(ElevatedClassLoaderFactory.java:72)
    at com.github.mc1arke.sonarqube.plugin.CommunityBranchPluginBootstrap.define(CommunityBranchPluginBootstrap.java:65)
    at org.sonar.scanner.bootstrap.ExtensionInstaller.install(ExtensionInstaller.java:58)
    at org.sonar.scanner.scan.ModuleScanContainer.addExtensions(ModuleScanContainer.java:74)
    at org.sonar.scanner.scan.ModuleScanContainer.doBeforeStart(ModuleScanContainer.java:48)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
    at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:384)
    at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:380)
    at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:349)
    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:136)
    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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
    at com.sun.proxy.$Proxy0.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.cli.Main.execute(Main.java:112)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
    at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.ClassNotFoundException: org.sonar.core.extension.CoreExtension
    at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
    at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
    at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
    ... 42 more

Not sure, what exactly went wrong - any ideas how I can fix it?

Edit: It is not working for our main branch, and not for our merge requests.

Edit: it seems to be working now, yay! fun fact: we did not change anything.