Exception fetching issue links for projectId

XMLWordPrintable

    • 5
    • Minor
    • 6

      Issue Summary

      When using MySQL and migrating a project with a large number of issues, the project fails while getting the project issue links (when export optimization is enabled).

      Steps to Reproduce

      1. Have a project with a large number of issues (e.g. 500k).
      2. Use JCMA in the latest version with a MySQL database.
      3. Start a migration plan and scope that project.

      Expected Results

      The project would be migrated without errors.

      Actual Results

      The below exception is thrown in the atlassian-jira.log file:

      2023-05-21 11:04:39,552 pool-102-thread-1 ERROR user 1013x751x1 jg7wz1 ip.adr.xx.x /rest/migration/latest/check/ef2d0541d56eyg6egstgfbdb89d2dd5c4 [jira.migration.export.ExportFacade] Exception fetching issue links for projectId=14600 , retrying... {} com.querydsl.core.QueryException: Caught CommunicationsException for select distinct `ISSUELINK`.`ID`, `ISSUELINK`.`LINKTYPE`, `ISSUELINK`.`SOURCE`, `ISSUELINK`.`DESTINATION`, `ISSUELINK`.`SEQUENCE` from `issuelink` `ISSUELINK` inner join `jiraissue` `JIRAISSUE` on `ISSUELINK`.`SOURCE` = `JIRAISSUE`.`ID` or `ISSUELINK`.`DESTINATION` = `JIRAISSUE`.`ID` where `JIRAISSUE`.`PROJECT` = ? and `ISSUELINK`.`LINKTYPE` is not null     at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)     at com.querydsl.sql.Configuration.translate(Configuration.java:459)     at com.querydsl.sql.AbstractSQLQuery.fetch(AbstractSQLQuery.java:502)     at com.atlassian.jira.migration.export.db.core.IssueLinkReader.getAllIssueLinksInProject$lambda$0(IssueLinkReader.kt:47)     at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69)     at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:87)     at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.lambda$execute$0(DefaultTransactionalExecutor.java:43)     at com.atlassian.jira.database.DatabaseAccessorImpl.runInManagedTransaction(DatabaseAccessorImpl.java:131)     at jdk.internal.reflect.GeneratedMethodAccessor245.invoke(Unknown Source)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)     at java.base/java.lang.reflect.Method.invoke(Unknown Source)     at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)     at com.sun.proxy.$Proxy581.runInManagedTransaction(Unknown Source)     at jdk.internal.reflect.GeneratedMethodAccessor245.invoke(Unknown Source)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)     at java.base/java.lang.reflect.Method.invoke(Unknown Source)     at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:130)     at com.sun.proxy.$Proxy581.runInManagedTransaction(Unknown Source)     at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.runInStartedOrExistingTransaction(JiraHostConnectionAccessor.java:130)     at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.execute(JiraHostConnectionAccessor.java:60)     at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:40)     at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.execute(DatabaseAccessorImpl.java:67)     at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.runInTransaction(DatabaseAccessorImpl.java:43)     at com.atlassian.pocketknife.api.querydsl.DatabaseAccessor.run(DatabaseAccessor.java:201)     at com.atlassian.jira.migration.export.db.core.IssueLinkReader.getAllIssueLinksInProject(IssueLinkReader.kt:29)     at com.atlassian.jira.migration.export.ExportFacade.populateIssueLinkCache(ExportFacade.kt:528)     at com.atlassian.jira.migration.export.ExportFacade.exportProjectReportData(ExportFacade.kt:284)     at com.atlassian.jira.migration.preflight.reports.PreMigrationReportsService$gatherReportsDataFromProjectParallel$futures$1$1$1.invoke(PreMigrationReportsService.kt:321)     at com.atlassian.jira.migration.preflight.reports.PreMigrationReportsService$gatherReportsDataFromProjectParallel$futures$1$1$1.invoke(PreMigrationReportsService.kt:320)     at com.atlassian.jira.migration.jiraservice.JiraExtensionsKt.wrap(JiraExtensions.kt:19)     at com.atlassian.jira.migration.preflight.reports.PreMigrationReportsService.gatherReportsDataFromProjectParallel$lambda$5$lambda$4(PreMigrationReportsService.kt:320)     at java.base/java.util.concurrent.FutureTask.run(Unknown Source)     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)     at java.base/java.lang.Thread.run(Unknown Source) Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

      Workaround

      Disabling the parallel export of issue links resolves the issue. For this, enable the Dark Feature:

      • com.atlassian.jira.migration.disable.issuelink.export.optimisation

              Assignee:
              Kumar Aman
              Reporter:
              Guilherme Menegotto (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: