Upgrade sonarqube 7.9.2 to 7.9.5

I want to upgrade sonarqube to 7.9.5 , but it failed to upgrade, the issue is :

2021.02.03 09:35:53 ERROR web[][o.s.s.p.Platform] Background initialization failed. Stopping SonarQube

sonar-s3_1_54c8a0c7c905 | org.apache.ibatis.exceptions.PersistenceException:

sonar-s3_1_54c8a0c7c905 | ### Error updating database. Cause: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "rules_repo_key"

sonar-s3_1_54c8a0c7c905 | Detail: Key (plugin_rule_key, plugin_name)=(QueryBuilder_should_be_closed, java) already exists.

sonar-s3_1_54c8a0c7c905 | ### The error may exist in org.sonar.db.rule.RuleMapper

sonar-s3_1_54c8a0c7c905 | ### The error may involve org.sonar.db.rule.RuleMapper.updateDefinition-Inline

sonar-s3_1_54c8a0c7c905 | ### The error occurred while setting parameters

sonar-s3_1_54c8a0c7c905 | ### Cause: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "rules_repo_key"

sonar-s3_1_54c8a0c7c905 | Detail: Key (plugin_rule_key, plugin_name)=(QueryBuilder_should_be_closed, java) already exists.

sonar-s3_1_54c8a0c7c905 | at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)

sonar-s3_1_54c8a0c7c905 | at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)

sonar-s3_1_54c8a0c7c905 | at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:67)

sonar-s3_1_54c8a0c7c905 | at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)

sonar-s3_1_54c8a0c7c905 | at com.sun.proxy.$Proxy50.updateDefinition(Unknown Source)

sonar-s3_1_54c8a0c7c905 | at org.sonar.db.rule.RuleDao.update(RuleDao.java:172)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.rule.RegisterRules.update(RegisterRules.java:770)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.rule.RegisterRules.processRemainingDbRules(RegisterRules.java:669)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.rule.RegisterRules.start(RegisterRules.java:136)

sonar-s3_1_54c8a0c7c905 | at org.sonar.core.platform.StartableCloseableSafeLifecyleStrategy.start(StartableCloseableSafeLifecyleStrategy.java:40)

sonar-s3_1_54c8a0c7c905 | at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)

sonar-s3_1_54c8a0c7c905 | at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)

sonar-s3_1_54c8a0c7c905 | at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)

sonar-s3_1_54c8a0c7c905 | at org.picocontainer.behaviors.Stored.start(Stored.java:110)

sonar-s3_1_54c8a0c7c905 | at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)

sonar-s3_1_54c8a0c7c905 | at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)

sonar-s3_1_54c8a0c7c905 | at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)

sonar-s3_1_54c8a0c7c905 | at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:90)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.platformlevel.PlatformLevelStartup.access$001(PlatformLevelStartup.java:48)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.platformlevel.PlatformLevelStartup$1.doPrivileged(PlatformLevelStartup.java:85)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.user.DoPrivileged.execute(DoPrivileged.java:46)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.platformlevel.PlatformLevelStartup.start(PlatformLevelStartup.java:82)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.Platform.executeStartupTasks(Platform.java:196)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.Platform.access$400(Platform.java:46)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.Platform$1.lambda$doRun$1(Platform.java:121)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.Platform$AutoStarterRunnable.runIfNotAborted(Platform.java:371)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.Platform$1.doRun(Platform.java:121)

sonar-s3_1_54c8a0c7c905 | at org.sonar.server.platform.Platform$AutoStarterRunnable.run(Platform.java:355)

sonar-s3_1_54c8a0c7c905 | at java.base/java.lang.Thread.run(Unknown Source)

sonar-s3_1_54c8a0c7c905 | Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "rules_repo_key"

sonar-s3_1_54c8a0c7c905 | Detail: Key (plugin_rule_key, plugin_name)=(QueryBuilder_should_be_closed, java) already exists.

sonar-s3_1_54c8a0c7c905 | at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440)

sonar-s3_1_54c8a0c7c905 | at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183)

sonar-s3_1_54c8a0c7c905 | at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308)

sonar-s3_1_54c8a0c7c905 | at org.postgresql.jdbc.PgStatement.executeInternal(PgSt

could you please help me to resolve this issue and why this issue happened .Thank you.

Hi @bella ,

Did you restore a DB backup recently? If yes, did anything fail, and/or was old data correctly cleaned up?

If no, and if you have a staging environment (do not do this on production without trying it on staging first), could you try removing the offending row from the rules table (e.g., DELETE FROM rules WHERE plugin_rule_key='QueryBuilder_should_be_closed' AND plugin_name='java';) and try starting SonarQube again?