Uploaded image for project: 'Jira Service Management Data Center'
  1. Jira Service Management Data Center
  2. JSDSERVER-4192

Upgrade Task fails in PostgreSQL when installing Service Desk

    XMLWordPrintable

Details

    Description

      Summary

      When installing Service Desk 3.2.0 on the final release of JIRA 7.2.0 with PostgreSQL backend, SyncUpgradeTaskFixOldStyleRequestChannelIssueProperties fails with a SQL exception.

      Expected Behavior

      Complete upgrade task successfully.

      Actual Behavior

      Upgrade task fails with the below error in logs. However, Service Desk is enabled successfully.

      2016-08-22 14:19:47,366 http-nio-8080-exec-23 ERROR anonymous 859x18x1 1736jjh 0:0:0:0:0:0:0:1 /secure/SetupMailNotifications.jspa [c.a.servicedesk.bootstrap.lifecycle] Failed running SyncUpgradeTask: SyncUpgradeTaskFixOldStyleRequestChannelIssueProperties
      com.atlassian.servicedesk.bootstrap.upgrade.SyncUpgradeTaskException: Failed running SyncUpgradeTask: SyncUpgradeTaskFixOldStyleRequestChannelIssueProperties
             	at com.atlassian.servicedesk.bootstrap.upgrade.SyncUpgradeTaskServiceImpl.runTask(SyncUpgradeTaskServiceImpl.java:79)
             	at com.atlassian.servicedesk.bootstrap.upgrade.SyncUpgradeTaskServiceImpl.runAll(SyncUpgradeTaskServiceImpl.java:48)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.PluginLifeCycle.runSyncUpgradeTasks(PluginLifeCycle.java:319)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.PluginLifeCycle.checkAndRunUpgrades(PluginLifeCycle.java:272)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.PluginLifeCycle.runPluginStartupSideEffectsImpl(PluginLifeCycle.java:183)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.LifecycleLock.writeImpl(LifecycleLock.java:97)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.LifecycleLock.runOnStartup(LifecycleLock.java:75)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.PluginLifeCycle.onPluginStarted(PluginLifeCycle.java:126)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.Launcher.onStartCompleted(Launcher.java:75)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.Launcher.access$000(Launcher.java:23)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.Launcher$1$1.run(Launcher.java:42)
             	at com.atlassian.pocketknife.api.util.runners.SealedRunner.checkSeals(SealedRunner.java:111)
             	at com.atlassian.pocketknife.api.util.runners.SealedRunner.breakSeal(SealedRunner.java:68)
             	at com.atlassian.servicedesk.bootstrap.lifecycle.Launcher.onStart(Launcher.java:68)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$4.consume(DefaultLifecycleManager.java:310)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$4.consume(DefaultLifecycleManager.java:306)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyLifecyleAware(DefaultLifecycleManager.java:344)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyOnStartIfStartedAndEnabled(DefaultLifecycleManager.java:304)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.access$300(DefaultLifecycleManager.java:50)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$3.evaluate(DefaultLifecycleManager.java:261)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager$3.evaluate(DefaultLifecycleManager.java:257)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyLifecycleAwares(DefaultLifecycleManager.java:286)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.notifyStartableLifecycleAwares(DefaultLifecycleManager.java:255)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.startIfApplicationSetup(DefaultLifecycleManager.java:241)
             	at com.atlassian.sal.core.lifecycle.DefaultLifecycleManager.start(DefaultLifecycleManager.java:230)
             	at com.atlassian.sal.jira.lifecycle.JiraLifecycleManager.onJiraStart(JiraLifecycleManager.java:64)
             	... 3 filtered
             	at java.lang.reflect.Method.invoke(Method.java:498)
             	at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36)
             	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1$1.run(AsynchronousAbleEventDispatcher.java:48)
             	at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299)
             	at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:107)
             	at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:160)
             	at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:79)
             	at com.atlassian.plugin.event.impl.DefaultPluginEventManager.broadcast(DefaultPluginEventManager.java:73)
             	at com.atlassian.jira.web.action.setup.SetupComplete.doExecute(SetupComplete.java:90)
             	... 1 filtered
             	at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63)
             	... 7 filtered
             	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
             	... 52 filtered
             	at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilterWhenNotLicensed(OperationalStatusAwareHttpFilter.java:71)
             	at com.atlassian.servicedesk.internal.web.OperationalStatusAwareHttpFilter.doFilter(OperationalStatusAwareHttpFilter.java:33)
             	... 4 filtered
             	at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:62)
             	... 7 filtered
             	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
             	... 58 filtered
             	at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:76)
             	... 1 filtered
             	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:74)
             	... 36 filtered
             	at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
             	... 5 filtered
             	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181)
             	at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:142)
             	at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:94)
             	at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:64)
             	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174)
             	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:130)
             	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121)
             	... 4 filtered
             	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
             	... 8 filtered
             	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
             	... 4 filtered
             	at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
             	... 29 filtered
             	at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
             	... 27 filtered
             	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
             	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
             	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
             	at java.lang.Thread.run(Thread.java:745)
      Caused by: com.querydsl.core.QueryException: Caught PSQLException for select "JIRAISSUE"."ID" from "JIRAISSUE" "JIRAISSUE" join "AO_54307E_SERVICEDESK" "AO_54307E_SERVICEDESK" on "AO_54307E_SERVICEDESK"."PROJECT_ID" = "JIRAISSUE"."PROJECT" order by "JIRAISSUE"."ID" asc
             	at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
             	at com.querydsl.sql.Configuration.translate(Configuration.java:453)
             	at com.querydsl.sql.AbstractSQLQuery.iterateSingle(AbstractSQLQuery.java:410)
             	at com.querydsl.sql.AbstractSQLQuery.iterate(AbstractSQLQuery.java:342)
             	at com.atlassian.pocketknife.internal.querydsl.stream.StreamingQueryFactoryImpl.streamImpl(StreamingQueryFactoryImpl.java:53)
             	at com.atlassian.servicedesk.bootstrap.upgrade.helper.AsyncUpgradeTaskServiceDeskIssuesDbHelper.getAllServiceDeskIssueIds(AsyncUpgradeTaskServiceDeskIssuesDbHelper.java:45)
             	at com.atlassian.servicedesk.bootstrap.upgrade.helper.AsyncUpgradeTaskServiceDeskIssuesDbHelper.runEffects(AsyncUpgradeTaskServiceDeskIssuesDbHelper.java:49)
             	at com.atlassian.servicedesk.bootstrap.upgrade.helper.AsyncUpgradeTaskServiceDeskIssuesDbHelper.lambda$applyEffectForAllServiceDeskIssues$1(AsyncUpgradeTaskServiceDeskIssuesDbHelper.java:59)
             	at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:66)
             	at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:103)
             	at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor$1.execute(DefaultTransactionalExecutor.java:50)
             	at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.lambda$borrowConnectionAndExecute$0(JiraHostConnectionAccessor.java:62)
             	at com.atlassian.jira.database.DatabaseAccessorImpl.executeQuery(DatabaseAccessorImpl.java:67)
             	... 2 filtered
             	at java.lang.reflect.Method.invoke(Method.java:498)
             	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
             	at com.sun.proxy.$Proxy463.executeQuery(Unknown Source)
             	... 2 filtered
             	at java.lang.reflect.Method.invoke(Method.java:498)
             	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:136)
             	at com.sun.proxy.$Proxy463.executeQuery(Unknown Source)
             	at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.borrowConnectionAndExecute(JiraHostConnectionAccessor.java:50)
             	at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.execute(JiraHostConnectionAccessor.java:35)
             	at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:45)
             	at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.execute(DatabaseAccessorImpl.java:64)
             	at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.runInNewTransaction(DatabaseAccessorImpl.java:35)
             	at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.run(DatabaseAccessorImpl.java:30)
             	at com.atlassian.servicedesk.bootstrap.upgrade.helper.AsyncUpgradeTaskServiceDeskIssuesDbHelper.applyEffectForAllServiceDeskIssues(AsyncUpgradeTaskServiceDeskIssuesDbHelper.java:59)
             	at com.atlassian.servicedesk.bootstrap.upgrade.tasks.SyncUpgradeTaskFixOldStyleRequestChannelIssueProperties.doUpgrade(SyncUpgradeTaskFixOldStyleRequestChannelIssueProperties.java:118)
             	at com.atlassian.servicedesk.bootstrap.upgrade.SyncUpgradeTaskServiceImpl.runTask(SyncUpgradeTaskServiceImpl.java:71)
             	... 304 more
      Caused by: org.postgresql.util.PSQLException: ERROR: relation "JIRAISSUE" does not exist
        Position: 30
             	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2101)
             	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1834)
             	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
             	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
             	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
             	at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83)
             	at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83)
             	at com.querydsl.sql.AbstractSQLQuery.iterateSingle(AbstractSQLQuery.java:370)
             	... 334 more
      

      According to Postgres Case Sensitivity, when objects are surrounded by double quotes, PostgreSQL performs a case-sensitive search. In JIRA's default database schema, the table jiraissue is lower case.

      Steps to Reproduce

      1. Install JIRA 7.2.0;
      2. Upload JIRA Service Desk 3.2.0 through Administration > Applications > Versions & licenses;

      Workaround

      This issue was caused by a missing schema definition <schema-name> in the dbconfig.xml file, possibly due to JRA-47663.
      There are three possible ways to prevent or manually correct this problem.

      1. Run the config.sh utility in visual mode and ensure the schema is set;
      2. Use JIRA's Setup Wizard - shown upon first startup in the browser;
      3. Manually specify <schema-name>name_of_schema</schema-name> just above the <jdbc-datasource> section on JIRA's dbconfig.xml file - located under <JIRA_HOME>/;

      Attachments

        Issue Links

          Activity

            People

              szaporozhtsev Sergey Zaporozhtsev (Inactive)
              jpalharini Joao Palharini (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Backbone Issue Sync