JIRA Import fails with PSQL Timeout

XMLWordPrintable

    • 8
    • Severity 2 - Major

      Problem Description

      JIRA Import fails with the following message in the UI:

      Caught PSQLException for delete from "public"."jiraissue" where "jiraissue"."project" in (select "jiraissue"."project" from "public"."jiraissue" "jiraissue" left join "public"."project" "PROJECT" on "jiraissue"."project" = "PROJECT"."id" where "jiraissue"."project" is not null and "PROJECT"."id" is null)
      

      Steps to Replicate

      It seems to be only affecting customers with a larger instance as it took longer time to execute the query.

      Actual Results

      The above error message is seen, and in the logs:

      com.querydsl.core.QueryException: Caught PSQLException for delete from "public"."jiraissue" where "jiraissue"."project" in (select "jiraissue"."project" from "public"."jiraissue" "jiraissue" left join "public"."project" "PROJECT" on "jiraissue"."project" = "PROJECT"."id" where "jiraissue"."project" is not null and "PROJECT"."id" is null)
       at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
       at com.querydsl.sql.Configuration.translate(Configuration.java:459)
       at com.querydsl.sql.dml.SQLDeleteClause.execute(SQLDeleteClause.java:222)
       at com.atlassian.jira.database.constraints.ForeignKeyConstraint.lambda$null$1(ForeignKeyConstraint.java:83)
       at com.atlassian.jira.database.constraints.ForeignKeyConstraint.lambda$getCleaner$3(ForeignKeyConstraint.java:89)
       at com.atlassian.jira.database.constraints.DefaultConstraintManager.lambda$null$21(DefaultConstraintManager.java:414)
       at com.atlassian.jira.database.constraints.DefaultConstraintManager.runTimed(DefaultConstraintManager.java:449)
       at com.atlassian.jira.database.constraints.DefaultConstraintManager.lambda$executeGroup$25(DefaultConstraintManager.java:413)
       at com.atlassian.jira.database.SqlCallback.runQuery(SqlCallback.java:23)
       at com.atlassian.jira.database.SqlCallback.runQuery(SqlCallback.java:13)
       at com.atlassian.jira.database.ConnectionUtils.lambda$null$0(ConnectionUtils.java:60)
       at com.atlassian.jira.database.ConnectionTimeoutUtils.withStatementTimeout(ConnectionTimeoutUtils.java:48)
       at com.atlassian.jira.database.ConnectionUtils.lambda$withTimeout$1(ConnectionUtils.java:60)
       at com.atlassian.jira.database.DefaultQueryDslAccessor.lambda$execute$1(DefaultQueryDslAccessor.java:57)
       at com.atlassian.jira.database.DatabaseAccessorImpl.lambda$runInTransaction$0(DatabaseAccessorImpl.java:67)
       at com.atlassian.jira.database.DatabaseAccessorImpl.executeQuery(DatabaseAccessorImpl.java:36)
       at com.atlassian.jira.database.DatabaseAccessorImpl.runInTransaction(DatabaseAccessorImpl.java:62)
       at com.atlassian.jira.database.DefaultQueryDslAccessor.execute(DefaultQueryDslAccessor.java:56)
       at com.atlassian.jira.database.constraints.DefaultConstraintManager.executeGroup(DefaultConstraintManager.java:409)
       at com.atlassian.jira.database.constraints.ProjectNotNullCleanupTaskDefinition.runRolloutTask(ProjectNotNullCleanupTaskDefinition.java:83)
       at com.atlassian.jira.task.adhoc.ReversibleAdHocUpgradeDefinition$RolloutTask.runUpgradeTask(ReversibleAdHocUpgradeDefinition.java:75)
       at com.atlassian.jira.task.adhoc.AdHocUpgradeServiceImpl.runTaskReportingProgress(AdHocUpgradeServiceImpl.java:174)
       at com.atlassian.jira.task.adhoc.AdHocUpgradeServiceImpl.runTask(AdHocUpgradeServiceImpl.java:202)
       at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
       at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
       at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
       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 com.atlassian.jira.upgrade.UpgradeServiceImpl.runPendingAdhocUpgradeTasks(UpgradeServiceImpl.java:157)
       at com.atlassian.jira.upgrade.UpgradeService$UpgradeResult.andThen(UpgradeService.java:136)
       at com.atlassian.jira.upgrade.UpgradeServiceImpl.lambda$runUpgradesForImport$3(UpgradeServiceImpl.java:145)
       at com.atlassian.jira.upgrade.UpgradeServiceImpl.runWithTaskLogging(UpgradeServiceImpl.java:363)
       at com.atlassian.jira.upgrade.UpgradeServiceImpl.runUpgradesForImport(UpgradeServiceImpl.java:138)
       at com.atlassian.jira.bc.dataimport.CloudImportService.runUpgradesForImport(CloudImportService.java:273)
       at com.atlassian.jira.bc.dataimport.CloudImportService.performDbImport(CloudImportService.java:231)
       at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.performTasksOnImportDb(CloudImportTaskRunner.java:306)
       at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.performTasksOnImportDb(CloudImportTaskRunner.java:357)
       at com.atlassian.jira.bc.dataimport.CloudImportTaskRunner.lambda$null$1(CloudImportTaskRunner.java:167)
       at com.atlassian.connpool.impl.AbstractConnectionPoolProvider.withPrivatePool(AbstractConnectionPoolProvider.java:134)
       at com.atlassian.jira.connpool.JiraViburConnectionPoolProvider.withPrivatePool(JiraViburConnectionPoolProvider.java:97)
       at com.atlassian.jira.bc.dataimport.AbstractBackupTaskRunner.lambda$null$0(AbstractBackupTaskRunner.java:60)
       at java.util.Optional.map(Optional.java:215)
       at com.atlassian.jira.bc.dataimport.AbstractBackupTaskRunner.lambda$runWithSeparateContextAsync$1(AbstractBackupTaskRunner.java:59)
       at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
       at java.lang.Thread.run(Thread.java:748) 
      Caused by: org.postgresql.util.PSQLException: ERROR: canceling statement due to statement timeout
       at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477)
       at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190)
       at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300)
       at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
       at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
       at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)
       at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:136)
       at sun.reflect.GeneratedMethodAccessor687.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.vibur.dbcp.proxy.AbstractInvocationHandler.targetInvoke(AbstractInvocationHandler.java:145)
       at org.vibur.dbcp.proxy.StatementInvocationHandler.doProcessExecute(StatementInvocationHandler.java:204)
       at org.vibur.dbcp.proxy.StatementInvocationHandler.on(StatementInvocationHandler.java:195)
       at com.atlassian.jira.connpool.JiraViburConnectionPoolProvider.lambda$null$5(JiraViburConnectionPoolProvider.java:149)
       at org.vibur.dbcp.proxy.StatementInvocationHandler.processExecute(StatementInvocationHandler.java:137)
       at org.vibur.dbcp.proxy.StatementInvocationHandler.restrictedInvoke(StatementInvocationHandler.java:91)
       at org.vibur.dbcp.proxy.StatementInvocationHandler.restrictedInvoke(StatementInvocationHandler.java:41)
       at org.vibur.dbcp.proxy.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:81)
       at com.sun.proxy.$Proxy4936.executeUpdate(Unknown Source)
       at com.querydsl.sql.dml.SQLDeleteClause.execute(SQLDeleteClause.java:208) ... 47 more 
      

      Note: Caused by: org.postgresql.util.PSQLException: ERROR: canceling statement due to statement timeout

      Workaround

      None at this moment

      More information

      Please do not confuse with JRACLOUD-68436 which is also PSQLException, however that issue can be workaround

            Assignee:
            Eric Dalgliesh
            Reporter:
            Richie Gee (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: