-
Type:
Bug
-
Resolution: Obsolete
-
Priority:
Medium
-
None
-
Affects Version/s: None
-
Component/s: Jira - Migration Assistant - JSM Export
-
11
-
Minor
-
3
Issue Summary
The customer tries to migrate a bunch of projects with help of JCMA plugin and during migration he receive com.querydsl.core.QueryException error
Steps to Reproduce
Can not reproduce this error
Expected Results
Migration must be successful
Actual Results
The below exception is thrown in the log file:
2022-01-07 14:50:51,701+0100 pool-27-thread-6 ERROR [c.a.j.m.export.framework.DefaultExportFailureHandler] 3e5feb21-a005-415b-aa79-c84c116e4b4b: Exporting referenced entities by Issue SUP-12004 failed 2com.querydsl.core.QueryException: Caught SQLServerException for select "AO_56464C_APPROVAL"."ID", "AO_56464C_APPROVAL"."ISSUE_ID", "AO_56464C_APPROVAL"."APPROVE_CONDITION_TYPE", "AO_56464C_APPROVAL"."APPROVE_CONDITION_VALUE", "AO_56464C_APPROVAL"."COMPLETED_DATE", "AO_56464C_APPROVAL"."CREATED_DATE", "AO_56464C_APPROVAL"."DECISION", "AO_56464C_APPROVAL"."NAME", "AO_56464C_APPROVAL"."STATUS_ID", "AO_56464C_APPROVAL"."SYSTEM_DECIDED" from "dbo"."AO_56464C_APPROVAL" "AO_56464C_APPROVAL" inner join "dbo"."issuestatus" "ISSUESTATUS" on "ISSUESTATUS"."ID" = "AO_56464C_APPROVAL"."STATUS_ID" where "AO_56464C_APPROVAL"."ISSUE_ID" = ? 3 at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50) 4 at com.querydsl.sql.Configuration.translate(Configuration.java:459) 5 at com.querydsl.sql.AbstractSQLQuery.fetch(AbstractSQLQuery.java:502) 6 at com.atlassian.jira.migration.export.db.servicedesk.ApprovalReader.getAllApprovalsByIssueId$lambda-8(ApprovalReader.kt:131) 7 at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69) 8 at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:87) 9 at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.lambda$execute$0(DefaultTransactionalExecutor.java:43) 10 at com.atlassian.jira.database.DatabaseAccessorImpl.runInManagedTransaction(DatabaseAccessorImpl.java:131) 11 ... 2 filtered 12 at java.lang.reflect.Method.invoke(Method.java:498) 13 at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26) 14 at com.sun.proxy.$Proxy79.runInManagedTransaction(Unknown Source) 15 ... 2 filtered 16 at java.lang.reflect.Method.invoke(Method.java:498) 17 at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:131) 18 at com.sun.proxy.$Proxy79.runInManagedTransaction(Unknown Source) 19 at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.runInStartedOrExistingTransaction(JiraHostConnectionAccessor.java:130) 20 at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.execute(JiraHostConnectionAccessor.java:60) 21 at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:40) 22 at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.execute(DatabaseAccessorImpl.java:67) 23 at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.runInTransaction(DatabaseAccessorImpl.java:43) 24 at com.atlassian.pocketknife.api.querydsl.DatabaseAccessor.run(DatabaseAccessor.java:201) 25 at com.atlassian.jira.migration.export.db.servicedesk.ApprovalReader.getAllApprovalsByIssueId(ApprovalReader.kt:114) 26 at com.atlassian.jira.migration.export.servicedesk.service.JsdExportServiceImpl.exportApprovals(JsdExportServiceImpl.kt:41) 27 at com.atlassian.jira.migration.export.core.issue.IssueExporter.exportApprovals(IssueExporter.kt:382) 28 at com.atlassian.jira.migration.export.core.issue.IssueExporter$childrenActions$9.invoke(IssueExporter.kt:239) 29 at com.atlassian.jira.migration.export.core.issue.IssueExporter$childrenActions$9.invoke(IssueExporter.kt:239) 30 at com.atlassian.jira.migration.export.framework.ExportService.continueWithChildrenActions(ExportService.kt:241) 31 at com.atlassian.jira.migration.export.framework.ExportService.exportByEntityImpl(ExportService.kt:228) 32 at com.atlassian.jira.migration.export.framework.ExportService.exportByEntityImpl$default(ExportService.kt:186) 33 at com.atlassian.jira.migration.export.framework.ExportService.exportOrThrow(ExportService.kt:113) 34 at com.atlassian.jira.migration.export.framework.ExportService.exportOrThrow$default(ExportService.kt:107) 35 at com.atlassian.jira.migration.export.core.project.ProjectExporter.exportIssues(ProjectExporter.kt:281) 36 at com.atlassian.jira.migration.export.core.project.ProjectExporter.access$exportIssues(ProjectExporter.kt:69) 37 at com.atlassian.jira.migration.export.core.project.ProjectExporter$childrenActions$6.invoke(ProjectExporter.kt:187) 38 at com.atlassian.jira.migration.export.core.project.ProjectExporter$childrenActions$6.invoke(ProjectExporter.kt:187) 39 at com.atlassian.jira.migration.export.framework.ExportService.continueWithChildrenActions(ExportService.kt:241) 40 at com.atlassian.jira.migration.export.framework.ExportService.exportByEntityImpl(ExportService.kt:228) 41 at com.atlassian.jira.migration.export.framework.ExportService.exportByEntityImpl$default(ExportService.kt:186) 42 at com.atlassian.jira.migration.export.framework.ExportService.exportOrThrow(ExportService.kt:113) 43 at com.atlassian.jira.migration.export.framework.ExportService.exportOrThrow$default(ExportService.kt:107) 44 at com.atlassian.jira.migration.export.ExportFacade.exportProjectData(ExportFacade.kt:133) 45 at com.atlassian.jira.migration.workers.ProjectProcessor$exportProjectData$1.invoke(ProjectsWorker.kt:237) 46 at com.atlassian.jira.migration.workers.ProjectProcessor$exportProjectData$1.invoke(ProjectsWorker.kt:228) 47 at com.atlassian.jira.migration.tracking.tasks.OperationProcessor$runTimedOperationWithResult$1.invoke(OperationProcessor.kt:52) 48 at com.atlassian.jira.migration.events.JiraEventDetectionService.runAndDetect(JiraEventDetectionService.kt:69) 49 at com.atlassian.jira.migration.tracking.tasks.OperationProcessor.runTimedOperationWithResult(OperationProcessor.kt:49) 50 at com.atlassian.jira.migration.workers.ProjectProcessor.exportProjectData(ProjectsWorker.kt:228) 51 at com.atlassian.jira.migration.workers.ProjectProcessor.process(ProjectsWorker.kt:147) 52 at com.atlassian.jira.migration.workers.ProjectsWorker.process(ProjectsWorker.kt:83) 53 at com.atlassian.jira.migration.tracking.polling.Poller.dispatchTask(Poller.kt:116) 54 at com.atlassian.jira.migration.tracking.polling.Poller.pollForTaskAndDispatch(Poller.kt:111) 55 at com.atlassian.jira.migration.tracking.polling.Poller.pollForTaskAndDispatchNoThrow(Poller.kt:65) 56 at com.atlassian.jira.migration.tracking.polling.Poller.doPoll(Poller.kt:50) 57 at com.atlassian.jira.migration.tracking.polling.AbstractPoller.execute(AbstractPoller.kt:62) 58 at com.atlassian.jira.migration.tracking.polling.AbstractPoller.access$execute(AbstractPoller.kt:16) 59 at com.atlassian.jira.migration.tracking.polling.AbstractPoller$startPolling$1.invoke(AbstractPoller.kt:35) 60 at com.atlassian.jira.migration.tracking.polling.AbstractPoller$startPolling$1.invoke(AbstractPoller.kt:35) 61 at com.atlassian.jira.migration.tracking.utils.ThreadUtils.safeExecutePeriodicallyUntilStopped(ThreadUtils.kt:43) 62 at com.atlassian.jira.migration.tracking.polling.AbstractPoller.startPolling(AbstractPoller.kt:34) 63 at com.atlassian.jira.migration.tracking.MigrationTracker.addAndStartWorkPoller$lambda-4$lambda-3(MigrationTracker.kt:78) 64 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 65 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 66 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 67 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 68 at java.lang.Thread.run(Thread.java:748) 69Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot resolve the collation conflict between "Latin1_General_CI_AI" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation. 70 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:256) 71 at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1621) 72 at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:592) 73 at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:522) 74 at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194) 75 at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:248) 76 at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:223) 77 at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:444) 78 at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83) 79 at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83) 80 at com.atlassian.jira.ofbiz.sql.PreparedStatementWrapper.executeQuery(PreparedStatementWrapper.java:42) 81 at com.atlassian.jira.diagnostic.connection.DiagnosticPreparedStatement.lambda$executeQuery$5(DiagnosticPreparedStatement.java:59) 82 at com.atlassian.diagnostics.internal.platform.monitor.db.DefaultDatabaseDiagnosticsCollector.recordExecutionTime(DefaultDatabaseDiagnosticsCollector.java:69) 83 at com.atlassian.jira.diagnostic.connection.DatabaseDiagnosticsCollectorDelegate.recordExecutionTime(DatabaseDiagnosticsCollectorDelegate.java:55) 84 at com.atlassian.jira.diagnostic.connection.DiagnosticPreparedStatement.executeQuery(DiagnosticPreparedStatement.java:59) 85 at com.querydsl.sql.AbstractSQLQuery.fetch(AbstractSQLQuery.java:446) 86 ... 65 more
Workaround
Change the instance-level collation to match the Jira database collation to SQL_Latin1_General_CP437_CI_AI or Latin1_General_CI_AI. Customer can use this guide to do so: Set or Change the Server Collation.
If the above doesn't work then it's possible customer will need to change the database collation as per the instructions on this article.