Sonarqube background task fail after upgrading from 9.2.4 -> 9.4

Prior to upgrading sonarqube community edition, we were on 9.2.4 which never had a fail run, Upgraded to 9.4.0 and noticed some runs fail with the following error when looking at background task:

Error Details
org.sonar.ce.task.projectanalysis.component.VisitException: Visit of Component {key=test:test/test.tsx,type=FILE} failed
	at org.sonar.ce.task.projectanalysis.component.VisitException.rethrowOrWrap(VisitException.java:44)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visit(VisitorsCrawler.java:74)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visitChildren(VisitorsCrawler.java:110)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visitImpl(VisitorsCrawler.java:97)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visit(VisitorsCrawler.java:72)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visitChildren(VisitorsCrawler.java:110)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visitImpl(VisitorsCrawler.java:97)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visit(VisitorsCrawler.java:72)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visitChildren(VisitorsCrawler.java:110)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visitImpl(VisitorsCrawler.java:97)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visit(VisitorsCrawler.java:72)
	at org.sonar.ce.task.projectanalysis.step.ExecuteVisitorsStep.execute(ExecuteVisitorsStep.java:51)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeStep(ComputationStepExecutor.java:81)
	at org.sonar.ce.task.step.ComputationStepExecutor.executeSteps(ComputationStepExecutor.java:72)
	at org.sonar.ce.task.step.ComputationStepExecutor.execute(ComputationStepExecutor.java:59)
	at org.sonar.ce.task.projectanalysis.taskprocessor.ReportTaskProcessor.process(ReportTaskProcessor.java:81)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.executeTask(CeWorkerImpl.java:212)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$ExecuteTask.run(CeWorkerImpl.java:194)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.findAndProcessTask(CeWorkerImpl.java:160)
	at org.sonar.ce.taskprocessor.CeWorkerImpl$TrackRunningState.get(CeWorkerImpl.java:135)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:87)
	at org.sonar.ce.taskprocessor.CeWorkerImpl.call(CeWorkerImpl.java:53)
	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalStateException: Fail to process issues of component 'test:test/test.tsx'
	at org.sonar.ce.task.projectanalysis.issue.IntegrateIssuesVisitor.visitAny(IntegrateIssuesVisitor.java:79)
	at org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorWrapper.visitAny(TypeAwareVisitorWrapper.java:77)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visitNode(VisitorsCrawler.java:117)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visitImpl(VisitorsCrawler.java:100)
	at org.sonar.ce.task.projectanalysis.component.VisitorsCrawler.visit(VisitorsCrawler.java:72)
	... 29 more
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.postgresql.util.PSQLException: ERROR: column i.issue_attributes does not exist
  Position: 429
### The error may exist in org.sonar.db.issue.IssueMapper
### The error may involve org.sonar.db.issue.IssueMapper.scrollNonClosedByComponentUuid-Inline
### The error occurred while setting parameters
### SQL: select           i.kee as kee,     i.rule_uuid as ruleUuid,     i.severity as severity,     i.manual_severity as manualSeverity,     i.message as message,     i.line as line,     i.locations as locations,     i.gap as gap,     i.effort as effort,     i.status as status,     i.resolution as resolution,     i.checksum as checksum,     i.assignee as assigneeUuid,     i.author_login as authorLogin,     i.tags as tagsString,     i.issue_attributes as issueAttributes,     i.issue_creation_date as issueCreationTime,     i.issue_update_date as issueUpdateTime,     i.issue_close_date as issueCloseTime,     i.created_at as createdAt,     i.updated_at as updatedAt,     r.is_external as "isExternal",     r.plugin_rule_key as ruleKey,     r.plugin_name as ruleRepo,     r.language as language,     r.security_standards as securityStandards,     p.kee as componentKey,     i.component_uuid as componentUuid,     p.module_uuid as moduleUuid,     p.module_uuid_path as moduleUuidPath,     p.path as filePath,     root.kee as projectKey,     i.project_uuid as projectUuid,     i.issue_type as type,     i.quick_fix_available as quickFixAvailable         from issues i     inner join rules r on r.uuid=i.rule_uuid     inner join components p on p.uuid=i.component_uuid     inner join components root on root.uuid=i.project_uuid     where     i.component_uuid = ? and     i.status <> 'CLOSED'
### Cause: org.postgresql.util.PSQLException: ERROR: column i.issue_attributes does not exist
  Position: 429
	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:171)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:157)
	at org.apache.ibatis.binding.MapperMethod.executeWithResultHandler(MapperMethod.java:136)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:77)
	at org.apache.ibatis.binding.MapperProxy$PlainMethodInvoker.invoke(MapperProxy.java:152)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85)
	at com.sun.proxy.$Proxy44.scrollNonClosedByComponentUuid(Unknown Source)
	at org.sonar.ce.task.projectanalysis.issue.ComponentIssuesLoader.loadOpenIssues(ComponentIssuesLoader.java:166)
	at org.sonar.ce.task.projectanalysis.issue.ComponentIssuesLoader.loadOpenIssues(ComponentIssuesLoader.java:88)
	at org.sonar.ce.task.projectanalysis.issue.TrackerBaseInputFactory$FileTrackerBaseLazyInput.loadIssues(TrackerBaseInputFactory.java:77)
	at org.sonar.core.issue.tracking.LazyInput.getIssues(LazyInput.java:50)
	at org.sonar.core.issue.tracking.FilteringBaseInputWrapper.<init>(FilteringBaseInputWrapper.java:34)
	at org.sonar.core.issue.tracking.NonClosedTracking.of(NonClosedTracking.java:35)
	at org.sonar.core.issue.tracking.Tracker.trackNonClosed(Tracker.java:34)
	at org.sonar.ce.task.projectanalysis.issue.TrackerExecution.track(TrackerExecution.java:53)
	at org.sonar.ce.task.projectanalysis.issue.IssueTrackingDelegator.track(IssueTrackingDelegator.java:52)
	at org.sonar.ce.task.projectanalysis.issue.IntegrateIssuesVisitor.visitAny(IntegrateIssuesVisitor.java:72)
	... 33 more
Caused by: org.postgresql.util.PSQLException: ERROR: column i.issue_attributes does not exist
  Position: 429
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2553)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2285)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:323)
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:481)
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:401)
	at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:164)
	at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:153)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94)
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
	at org.apache.ibatis.executor.ReuseExecutor.doQuery(ReuseExecutor.java:60)
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:169)
	... 49 more

We ran the database migration by going to /setup and say it completed successfully. We’ve upgraded a few times previously and didn’t see any issues until upgrading to 9.4.

  • which versions are you using (SonarQube, Scanner, Plugin, and any relevant extension)
    SonarQube Community 9.4.0
    Scanner: latest sonarsource/sonar-scanner-cli image.

  • what are you trying to achieve
    Passing sonarqube analysis

  • what have you tried so far to achieve this
    running a analysis.

Hey there.

I’d be really careful to make sure you don’t accidentally still have a SonarQube v9.2 instance hooked up to your database (however not possible that should be). The line numbers referenced in the stacktrace, as well as the SQL query, match exactly the source code of SonarQube v9.2 (and have been changed in v9.4).

You might also try a full reinstall of the SonarQube v9.4 zip file / docker image, making sure there’s no remaining artifacts from your previous install.

Can confirm that we didn’t have SonarQube 9.2 hooked up to the database. The errors above came from the background task failures on SonarQube Dashboard where it says 9.4 on the bottom. We eventually had to do a database restore and roll back to Sonarqube 9.2 which works.

Can you point to the line of code you’re referring to that match to 9.2 and not 9.4?