Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SonarQube server crashes at startup when both ecoCode-android and Groovy plugins are onboard #83

Open
gvrf2911 opened this issue Dec 4, 2023 · 1 comment
Assignees
Labels
codenarc 💉 bug Something isn't working

Comments

@gvrf2911
Copy link

gvrf2911 commented Dec 4, 2023

Describe the bug
SonarQube 10.3 server crashes at startup when both ecoCode-android and Groovy plugins are onboard.

To Reproduce
Steps to reproduce the behavior:

  1. Start SonarQube server with ecoCode-android and Groovy plugins onboard,
  2. SonarQube crashes with the following error:
023.11.29 15:41:52 INFO  web[][o.s.s.p.ServerPluginManager] Deploy ecoCode JavaScript plugin / 1.4.0 / null

2023.11.29 15:41:58 INFO  ...

2023.11.29 15:42:00 INFO  web[][o.s.s.p.DetectPluginChange] Detect plugin changes
2023.11.29 15:42:02 ERROR web[][o.s.s.p.Platform] Background initialization failed. Stopping SonarQube
java.lang.IllegalStateException: Fail to load plugin Groovy [groovy]
	at org.sonar.server.plugins.ServerExtensionInstaller.installExtensions(ServerExtensionInstaller.java:81)
	at org.sonar.server.platform.platformlevel.PlatformLevel4.start(PlatformLevel4.java:668)
	at org.sonar.server.platform.PlatformImpl.start(PlatformImpl.java:214)
	at org.sonar.server.platform.PlatformImpl.startLevel34Containers(PlatformImpl.java:194)
	at org.sonar.server.platform.PlatformImpl$AutoStarterRunnable.runIfNotAborted(PlatformImpl.java:362)
	at org.sonar.server.platform.PlatformImpl$1.doRun(PlatformImpl.java:113)
	at org.sonar.server.platform.PlatformImpl$AutoStarterRunnable.run(PlatformImpl.java:346)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'jdk.internal.loader.ClassLoaders$AppClassLoader@12bcd0c0-org.sonar.api.config.PropertyDefinition-sonar.groovy.file.suffixes' defined in null: Cannot register bean definition [Generic bean: class [org.sonar.api.config.PropertyDefinition]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] for bean 'jdk.internal.loader.ClassLoaders$AppClassLoader@12bcd0c0-org.sonar.api.config.PropertyDefinition-sonar.groovy.file.suffixes': There is already [Generic bean: class [org.sonar.api.config.PropertyDefinition]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] bound.
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition(DefaultListableBeanFactory.java:1006)
	at org.springframework.context.support.GenericApplicationContext.registerBeanDefinition(GenericApplicationContext.java:342)
	at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.registerBeanDefinition(BeanDefinitionReaderUtils.java:164)
	at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.doRegisterBean(AnnotatedBeanDefinitionReader.java:285)
	at org.springframework.context.annotation.AnnotatedBeanDefinitionReader.registerBean(AnnotatedBeanDefinitionReader.java:233)
	at org.springframework.context.annotation.AnnotationConfigApplicationContext.registerBean(AnnotationConfigApplicationContext.java:198)
	at org.sonar.core.platform.SpringComponentContainer.registerInstance(SpringComponentContainer.java:126)
	at org.sonar.core.platform.SpringComponentContainer.addExtension(SpringComponentContainer.java:142)
	at org.sonar.core.platform.SpringComponentContainer.addExtension(SpringComponentContainer.java:236)
	at org.sonar.core.platform.SpringComponentContainer.addExtension(SpringComponentContainer.java:41)
	at org.sonar.server.plugins.ServerExtensionInstaller.installExtension(ServerExtensionInstaller.java:89)
	at org.sonar.server.plugins.ServerExtensionInstaller.installExtensions(ServerExtensionInstaller.java:73)
	... 7 common frames omitted
2023.11.29 15:42:02 INFO  web[][o.s.p.ProcessEntryPoint] Hard stopping process

Expected behavior
SonarQube should start up with both plugins onboard.

Additional context

SonarQube version: 10.3.0 Enterprise Edition
ecoCode-android version : 1.1.0
Groovy plugin: 1.8

SonarQube launches well with only one of the two plugins.

With the ecoCode-android plugins installed, there are 3 rules created for the Groovy language, whereas the Groovy plugin integrates 385 rules and activates 58 in the "Sonar way" profile.

Although the Groovy plugin is unmaintained, it still works on SonarQube versions 9.9 LTS, 10.2.1 and 10.3 and is used in our company.

It's a sad fact that these plugins look like to be incompatible, especially as it seems that much of the Groovy language analysis code of ecoCode-android plugin comes from the Groovy plugin.

@jhertout
Copy link
Contributor

jhertout commented Jan 8, 2024

Hello,

sorry for the delay of the response. The fact that the two plugins can't work at the same time is a problem indeed. We will try to fix that.

Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
codenarc 💉 bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants