Details
-
Bug
-
Resolution: Timed out
-
Medium
-
6
-
Severity 2 - Major
-
Description
When trying to create a Service Desk project under certain circumstances, creating the project will fail and an exception will be logged. This will occur if a JIRA Service Desk project is deleted while JIRA Service Desk is deactivated/unlicensed because portals for the project are not fully removed from the database. Later, if we re-license JSD and try to create a project with the same key, the failure will occur.
Steps to reproduce
1. Create a new service desk project called 'Support'
2. Update your license to only have JIRA Core (i.e. deactivate Service Desk)
3. Delete the 'Support' project
4. Delete all of the issue types that came from service desk (IT Help, Service Request, Service Request with Approvals, possibly others depending on project template)
5. Update your license to include service desk again
6. Create a new project 'Support' (it just needs to have the same project key as the original project)
7. Creating the project will fail, if you check the logs you will get the stacktrace with the Postgres exception below
You can check the all events on Splunk logs
message
Caught PSQLException for delete from "public"."AO_54307E_GROUP" where "AO_54307E_GROUP"."VIEWPORT_ID" = ?
Stacktrace:
com.querydsl.core.QueryException: Caught PSQLException for delete from "public"."AO_54307E_GROUP" where "AO_54307E_GROUP"."VIEWPORT_ID" = ? 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.servicedesk.internal.requesttype.group.RequestTypeGroupQStoreImpl.lambda$hardDeleteGroups$4(RequestTypeGroupQStoreImpl.java:112) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:50) at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:88) at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor$1.execute(DefaultTransactionalExecutor.java:42) at com.atlassian.jira.internal.sal.rdbms.JiraHostConnectionAccessor.lambda$borrowConnectionAndExecute$0(JiraHostConnectionAccessor.java:62) at com.atlassian.jira.database.DatabaseAccessorImpl.executeQuery(DatabaseAccessorImpl.java:36) at com.atlassian.jira.internal.sal.rdbms.JiraHostConnectionAccessor.borrowConnectionAndExecute(JiraHostConnectionAccessor.java:50) at com.atlassian.jira.internal.sal.rdbms.JiraHostConnectionAccessor.execute(JiraHostConnectionAccessor.java:40) at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:39) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.execute(DatabaseAccessorImpl.java:48) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.runInTransaction(DatabaseAccessorImpl.java:34) at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.run(DatabaseAccessorImpl.java:24) at com.atlassian.servicedesk.internal.requesttype.group.RequestTypeGroupQStoreImpl.hardDeleteGroups(RequestTypeGroupQStoreImpl.java:109) at com.atlassian.servicedesk.internal.requesttype.group.RequestTypeGroupManagerImpl.deleteGroups(RequestTypeGroupManagerImpl.java:210) at com.atlassian.servicedesk.internal.feature.customer.portal.PortalDeletionManagerImpl.lambda$deletePortal$1(PortalDeletionManagerImpl.java:42) at io.atlassian.fugue.Either$RightProjection.map(Either.java:856) at io.atlassian.fugue.Either.map(Either.java:216) at com.atlassian.servicedesk.internal.feature.customer.portal.PortalDeletionManagerImpl.deletePortal(PortalDeletionManagerImpl.java:34) at com.atlassian.servicedesk.internal.project.ServiceDeskDeletionManagerImpl.lambda$deleteServiceDeskByProject$2(ServiceDeskDeletionManagerImpl.java:78) at io.atlassian.fugue.Either$AbstractProjection.forEach(Either.java:696) at io.atlassian.fugue.Either.forEach(Either.java:279) at com.atlassian.servicedesk.internal.project.ServiceDeskDeletionManagerImpl.deleteServiceDeskByProject(ServiceDeskDeletionManagerImpl.java:78) at com.atlassian.servicedesk.internal.feature.servicedesk.InternalServiceDeskServiceScala.deleteServiceDesk(InternalServiceDeskServiceScala.scala:232) at com.atlassian.servicedesk.internal.feature.gettingstarted.GettingStartedService.createServiceDeskForEmptyProject(GettingStartedService.java:170) at com.atlassian.servicedesk.internal.project.ServiceDeskProjectConfigurator.callGettingStartedServiceToCreateServiceDesk(ServiceDeskProjectConfigurator.java:95) at com.atlassian.servicedesk.internal.project.ServiceDeskProjectConfigurator.lambda$configure$0(ServiceDeskProjectConfigurator.java:80) at io.atlassian.fugue.Either$RightProjection.flatMap(Either.java:870) at io.atlassian.fugue.Either.flatMap(Either.java:230) at com.atlassian.pocketknife.step.EitherStep1.then(EitherStep1.java:18) at com.atlassian.servicedesk.internal.project.ServiceDeskProjectConfigurator.configure(ServiceDeskProjectConfigurator.java:79) at com.atlassian.servicedesk.internal.project.template.hook.CustomerSupportAddProjectHook.configure(CustomerSupportAddProjectHook.java:16) at com.atlassian.jira.projecttemplates.service.ApplyProjectTemplateHandler.applyProjectTemplate(ApplyProjectTemplateHandler.java:67) at com.atlassian.jira.projecttemplates.service.ApplyProjectTemplateHandler.onProjectCreated(ApplyProjectTemplateHandler.java:55) at com.atlassian.jira.project.ProjectCreateRegistrarImpl.notifyAllHandlers(ProjectCreateRegistrarImpl.java:36) at com.atlassian.jira.bc.project.DefaultProjectService.notifyHandlersOfProjectCreated(DefaultProjectService.java:419) at com.atlassian.jira.bc.project.DefaultProjectService.createProjectInternal(DefaultProjectService.java:402) at com.atlassian.jira.bc.project.DefaultProjectService.createProject(DefaultProjectService.java:372) ... 3 filtered at java.lang.reflect.Method.invoke(Method.java:498) at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26) at com.sun.proxy.$Proxy163.createProject(Unknown Source) ... 3 filtered at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor$1.run(ServiceTCCLInterceptor.java:61) at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:130) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokePrivileged(ServiceTCCLInterceptor.java:58) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:50) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) at com.sun.proxy.$Proxy2067.createProject(Unknown Source) at com.atlassian.jira.projecttemplates.service.ProjectTemplateServiceImpl.applyProjectTemplate(ProjectTemplateServiceImpl.java:167) at com.atlassian.jira.projecttemplates.rest.ProjectTemplatesResource.createProjectFromFormRequest(ProjectTemplatesResource.java:172) ... 3 filtered at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) ... 12 filtered at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:160) ... 1 filtered at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:70) ... 11 filtered at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56) ... 9 filtered at com.atlassian.analytics.client.plugin.filter.UniversalAnalyticsFilter.doFilter(UniversalAnalyticsFilter.java:63) ... 4 filtered at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) ... 20 filtered at com.atlassian.jira.plugins.rest.HOT25715FixServletFilter.doFilter(HOT25715FixServletFilter.java:46) ... 25 filtered at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:81) ... 3 filtered at com.atlassian.jira.plugins.hipchat.web.filter.TaskSchedulerFilter.doFilter(TaskSchedulerFilter.java:45) ... 14 filtered at com.atlassian.jira.unbundleordie.idp.UnbundlingAuthenticationFilter.doFilter(UnbundlingAuthenticationFilter.java:25) ... 3 filtered at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:95) ... 1 filtered at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:93) ... 16 filtered at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:37) ... 7 filtered at com.atlassian.jira.rest.auth.JiraRestSeraphAuthFilter.doFilter(JiraRestSeraphAuthFilter.java:45) ... 3 filtered at com.atlassian.servicedesk.plugins.cm.internal.auth.filter.LocalServiceDeskUserAuthenticationFilter.doFilter(LocalServiceDeskUserAuthenticationFilter.java:102) ... 8 filtered at com.atlassian.studio.jira.homepage.CloudHomepageFilter$Action.lambda$nextInFilterChain$1(CloudHomepageFilter.java:115) at com.atlassian.studio.jira.homepage.CloudHomepageFilter.doFilter(CloudHomepageFilter.java:73) at com.atlassian.studio.jira.homepage.CloudHomepageFilter$Provider.doFilter(CloudHomepageFilter.java:134) ... 22 filtered at com.atlassian.plugin.connect.plugin.auth.oauth2.DefaultSalAuthenticationFilter.doFilter(DefaultSalAuthenticationFilter.java:76) ... 3 filtered at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:111) ... 3 filtered at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:195) at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:139) at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:92) at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:64) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:188) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:144) at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:135) ... 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) ... 40 filtered at com.atlassian.jira.util.zipkin.ZipkinTracingFilter.lambda$doFilter$1(ZipkinTracingFilter.java:52) at com.github.kristofa.brave.servlet.BraveServletFilter.doFilter(BraveServletFilter.java:59) at com.atlassian.jira.util.zipkin.ZipkinTracingFilter.doFilter(ZipkinTracingFilter.java:40) ... 28 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: org.postgresql.util.PSQLException: ERROR: update or delete on table "AO_54307E_GROUP" violates foreign key constraint "fk_ao_54307e_grouptorequesttype_group_id" on table "AO_54307E_GROUPTOREQUESTTYPE" Detail: Key (ID)=(1) is still referenced from table "AO_54307E_GROUPTOREQUESTTYPE". at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:363) ... 2 filtered at java.lang.reflect.Method.invoke(Method.java:498) at org.vibur.dbcp.proxy.AbstractInvocationHandler.targetInvoke(AbstractInvocationHandler.java:143) at org.vibur.dbcp.proxy.StatementInvocationHandler.processExecute(StatementInvocationHandler.java:125) at org.vibur.dbcp.proxy.StatementInvocationHandler.restrictedInvoke(StatementInvocationHandler.java:78) at org.vibur.dbcp.proxy.StatementInvocationHandler.restrictedInvoke(StatementInvocationHandler.java:37) at org.vibur.dbcp.proxy.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:79) at com.sun.proxy.$Proxy4655.executeUpdate(Unknown Source) at com.querydsl.sql.dml.SQLDeleteClause.execute(SQLDeleteClause.java:208) ... 358 more
Attachments
Issue Links
- derives
-
FREE-1537 Loading...