Sonar database migration fails with "Duplicate key java/FindBugs + FB-Contrib"

  • SonarQube version sonar 6.7.3
  • Objective : migrating from a MySQL database to MSSQL using DBMigrator utility
  • error observed

2019.08.29 07:29:37 WARN  web[][o.s.s.q.BuiltInQProfileDefinitionsBridge] Rule not found: [repository=checkmarx.rules.apex, key=checkmarx_29]
2019.08.29 07:29:37 WARN  web[][o.s.s.q.BuiltInQProfileDefinitionsBridge] Rule not found: [repository=checkmarx.rules.apex, key=checkmarx_44]
2019.08.29 07:29:37 WARN  web[][o.s.s.q.BuiltInQProfileDefinitionsBridge] Rule not found: [repository=checkmarx.rules.apex, key=checkmarx_1049]
2019.08.29 07:29:37 WARN  web[][o.s.s.q.BuiltInQProfileDefinitionsBridge] Rule not found: [repository=checkmarx.rules.apex, key=checkmarx_45]
2019.08.29 07:29:37 WARN  web[][o.s.s.q.BuiltInQProfileDefinitionsBridge] Rule not found: [repository=checkmarx.rules.apex, key=checkmarx_46]
2019.08.29 07:29:38 INFO  web[][o.s.s.q.BuiltInQProfileRepositoryImpl] Language cpp is not installed, related Quality profiles are ignored
2019.08.29 07:29:38 INFO  web[][o.s.s.q.BuiltInQProfileRepositoryImpl] Language go is not installed, related Quality profiles are ignored
2019.08.29 07:29:38 INFO  web[][o.s.s.q.BuiltInQProfileRepositoryImpl] Language vb is not installed, related Quality profiles are ignored
2019.08.29 07:29:38 INFO  web[][o.s.s.q.BuiltInQProfileRepositoryImpl] Language apex is not installed, related Quality profiles are ignored
2019.08.29 07:29:38 INFO  web[][o.s.s.q.BuiltInQProfileRepositoryImpl] Language plsql is not installed, related Quality profiles are ignored
2019.08.29 07:29:38 INFO  web[][o.s.s.q.BuiltInQProfileRepositoryImpl] Language vbnet is not installed, related Quality profiles are ignored
2019.08.29 07:29:38 INFO  web[][o.s.s.q.BuiltInQProfileRepositoryImpl] Language objc is not installed, related Quality profiles are ignored
2019.08.29 07:29:38 INFO  web[][o.s.s.q.RegisterQualityProfiles] Register quality profiles
2019.08.29 07:29:38 ERROR web[][o.s.s.p.Platform] Background initialization failed. Stopping SonarQube
java.lang.IllegalArgumentException: Duplicate key java/FindBugs + FB-Contrib
        at org.sonar.core.util.stream.MoreCollectors.putAndFailOnDuplicateKey(MoreCollectors.java:286)
        at org.sonar.core.util.stream.MoreCollectors.lambda$uniqueIndex$8(MoreCollectors.java:247)
        at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
        at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
        at org.sonar.server.qualityprofile.RegisterQualityProfiles.loadPersistedProfiles(RegisterQualityProfiles.java:104)
        at org.sonar.server.qualityprofile.RegisterQualityProfiles.start(RegisterQualityProfiles.java:77)
        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.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)
        at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89)
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
        at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
        at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
        at org.picocontainer.behaviors.Stored.start(Stored.java:110)
        at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)
        at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)
        at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:134)
        at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:90)
        at org.sonar.server.platform.platformlevel.PlatformLevelStartup.access$001(PlatformLevelStartup.java:45)
        at org.sonar.server.platform.platformlevel.PlatformLevelStartup$1.doPrivileged(PlatformLevelStartup.java:83)
        at org.sonar.server.user.DoPrivileged.execute(DoPrivileged.java:45)
        at org.sonar.server.platform.platformlevel.PlatformLevelStartup.start(PlatformLevelStartup.java:80)
        at org.sonar.server.platform.Platform.executeStartupTasks(Platform.java:196)
        at org.sonar.server.platform.Platform.access$400(Platform.java:46)
        at org.sonar.server.platform.Platform$1.lambda$doRun$1(Platform.java:121)
        at org.sonar.server.platform.Platform$AutoStarterRunnable.runIfNotAborted(Platform.java:371)
        at org.sonar.server.platform.Platform$1.doRun(Platform.java:121)
        at org.sonar.server.platform.Platform$AutoStarterRunnable.run(Platform.java:355)
        at java.lang.Thread.run(Thread.java:748)
  • Steps to Reproduce
    ** Existing Sonar 6.7.3 instance running on MySQL
    ** Migrate the database to an MSSQL instance.
    ** restart Sonar instance.

  • potential workaround : None

Hi @amitkumar2283,

It seems that a quality profile has been duplicated during the copy.
In order to confirm this statement, could you please execute the following SQL query :

select * from rules_profiles rp

Regards,
Julien Lancelot

1 Like