-
Bug
-
Resolution: Fixed
-
High
-
None
-
JCMA - 1.8.0
-
None
-
5
-
Severity 3 - Minor
-
15
Problem
When running the migration using JCMA 1.8.0, the preflight check screen shows the below error under the Data Preparation section and then the run button greys out.
Environment
JCMA 1.8.0
MS SQL Server: 13.00.7016
Jira Software 8.13.22
Steps to Reproduce
- Install or upgrade to JCMA 1.8.0
- Create a migration plan and include the Advanced Roadmap in migration.
- The error will be shown after completing the preflight checks.
- Click on continue and fix later, the Run button will be greyed out
Expected Results
The preflight checks for the Advanced Roadmap should be completed successfully and run button should be enabled.
Actual Results
The below exception is thrown in the atlassian-jira.log file:
ERROR 595x267441x1 3ju8tf 10.23.133.177,10.202.0.1 /rest/migration/latest/check/a1df2131e4ad4da5d38bcfaac0bdc4d3660cc983 [c.a.j.migration.preflight.AsyncCheckExecutor] Pre-flight execution error occurred for check type ProjectErrorReport java.util.concurrent.ExecutionException: com.querydsl.core.NonUniqueResultException: Only one result is allowed for fetchOne calls at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:531) at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:492) at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:83) at com.atlassian.jira.migration.preflight.AsyncCheckExecutor$Companion.extractResult(AsyncCheckExecutor.kt:266) at com.atlassian.jira.migration.preflight.AsyncCheckExecutor$Companion.access$extractResult(AsyncCheckExecutor.kt:256) at com.atlassian.jira.migration.preflight.AsyncCheckExecutor$persistWhenDone$1.onFailure(AsyncCheckExecutor.kt:170) at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1052) 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:834) Caused by: com.querydsl.core.NonUniqueResultException: Only one result is allowed for fetchOne calls at com.querydsl.core.support.FetchableQueryBase.uniqueResult(FetchableQueryBase.java:64) at com.querydsl.sql.ProjectableSQLQuery.fetchOne(ProjectableSQLQuery.java:398) at com.atlassian.jira.migration.export.db.advancedroadmaps.IssueSourceDataReader.getAllBoardIssueSourcesByIssueSourceIds$lambda$0(IssueSourceDataReader.kt:51) 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.jira.database.DatabaseAccessorImpl.runInManagedTransaction(DatabaseAccessorImpl.java:131) at jdk.internal.reflect.GeneratedMethodAccessor437.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26) at com.sun.proxy.$Proxy406.runInManagedTransaction(Unknown Source) at jdk.internal.reflect.GeneratedMethodAccessor437.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:130) at com.sun.proxy.$Proxy406.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.advancedroadmaps.IssueSourceDataReader.getAllBoardIssueSourcesByIssueSourceIds(IssueSourceDataReader.kt:43) at com.atlassian.jira.migration.export.advancedroadmaps.ArExportServiceImpl.checkIfTeamBoardRelatedToBoardFromMigration(ArExportServiceImpl.kt:87) at com.atlassian.jira.migration.export.advancedroadmaps.ArExportServiceImpl.exportAr(ArExportServiceImpl.kt:51) at com.atlassian.jira.migration.export.ExportFacade.exportCrossProjectReportData(ExportFacade.kt:282) at com.atlassian.jira.migration.preflight.reports.PreMigrationReportsService$gatherReportsDataFromProject$1.invoke(PreMigrationReportsService.kt:224) at com.atlassian.jira.migration.preflight.reports.PreMigrationReportsService$gatherReportsDataFromProject$1.invoke(PreMigrationReportsService.kt:223) at com.atlassian.jira.migration.jiraservice.JiraExtensionsKt.wrap(JiraExtensions.kt:19) at com.atlassian.jira.migration.preflight.reports.PreMigrationReportsService.gatherReportsDataFromProject(PreMigrationReportsService.kt:223) at com.atlassian.jira.migration.preflight.ProjectReportErrorService.performCheck(ProjectReportErrorService.kt:25) at com.atlassian.jira.migration.preflight.ProjectReportErrorCheck.performCheck(ProjectReportErrorCheck.kt:37) at com.atlassian.jira.migration.preflight.AsyncCheckExecutor.runCheck(AsyncCheckExecutor.kt:223) at com.atlassian.jira.migration.preflight.AsyncCheckExecutor.access$runCheck(AsyncCheckExecutor.kt:34) at com.atlassian.jira.migration.preflight.AsyncCheckExecutor$executeChecksListenable$1.invoke$lambda$6$lambda$4(AsyncCheckExecutor.kt:140) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:57) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) ... 3 more
Workaround
Currently, there is no known workaround for this behavior. A workaround will be added here when available