-
Bug
-
Resolution: Duplicate
-
High
-
6.4.0
-
31
-
Severity 1 - Critical
-
2
-
Summary
Deleting an artifact definition from a build plan will corrupt any linked deployment plans with artifact download tasks. Can no longer create or deploy a release, nor delete the deployment project once affected. Source build plan can not be modified.
Steps to Reproduce
- Setup a build plan with 2 shared artifact definitions
- Create a deployment project linked to this build plan
- Add an environment with an artifact download task
- Build the source build plan
- Delete one of the artifact definitions
- Attempt to create a release off that result
Expected Results
Release can be created / deployed
Deployment project can be deleted
Source build plan can not be modified
Actual Results
The below exception is thrown in the UI as an Internal Server error and logged to the atlassian-bamboo.log when attempting to create a release / delete the project / change the source build plan:
org.springframework.orm.hibernate5.HibernateSystemException: Cannot instantiate abstract class or interface: : com.atlassian.bamboo.deployments.projects.persistence.items.AbstractMutableDeploymentProjectItem; nested exception is org.hibernate.InstantiationException: Cannot instantiate abstract class or interface: : com.atlassian.bamboo.deployments.projects.persistence.items.AbstractMutableDeploymentProjectItem at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:296) at org.springframework.orm.hibernate5.HibernateTemplate.doExecute(HibernateTemplate.java:362) at org.springframework.orm.hibernate5.HibernateTemplate.execute(HibernateTemplate.java:313) at com.atlassian.bamboo.deployments.projects.persistence.DeploymentProjectDaoImpl.getProjectItems(DeploymentProjectDaoImpl.java:206) at sun.reflect.GeneratedMethodAccessor1679.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) at com.sun.proxy.$Proxy89.getProjectItems(Unknown Source) at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl$3.run(DeploymentVersionServiceImpl.java:454) at com.atlassian.bamboo.variable.CustomVariableContextImpl.withVariableSubstitutor(CustomVariableContextImpl.java:174) at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl.getNewDeploymentVersionWithoutName(DeploymentVersionServiceImpl.java:447) at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl.createDeploymentVersionInternal(DeploymentVersionServiceImpl.java:302) at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl.access$000(DeploymentVersionServiceImpl.java:109) at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl$2.apply(DeploymentVersionServiceImpl.java:280) at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl$2.apply(DeploymentVersionServiceImpl.java:277) at com.atlassian.bamboo.core.ScopedExclusionServiceImpl.withLock(ScopedExclusionServiceImpl.java:63) at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl.createDeploymentVersion(DeploymentVersionServiceImpl.java:277) at com.atlassian.bamboo.deployments.versions.actions.AbstractCreateDeploymentVersion.createVersion(AbstractCreateDeploymentVersion.java:117) at com.atlassian.bamboo.deployments.execution.actions.ExecuteManualDeployment.execute(ExecuteManualDeployment.java:210) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Notes
- The affected deployment plan will display "No shared artifacts found for related plan. Please configure the build plan to publish shared artifacts." despite shared artifacts being configured still on the source build plan.
Workaround
- Create a new plan with an artifact definition. This plan needs no content other than an artifact definition and its sole purpose is to be removed and in the next step.
- Remove this new plan created in step 1. This will trigger Bamboo to execute a DB cleanup and removes orphaned Artifact definition records which trigger the bug in affected plans.
- duplicates
-
BAM-19736 Renaming artifact in YAML break deployment
- Closed
-
BAM-19770 Bamboo fails to download shared artifact (in deployment) from Specs plan
- Closed
-
BAM-19783 Deleting the artifact definition from the plan causes problems in related deployments
- Closed
-
BAM-19948 Deployment project item list not updated when plan artifact is added/modified/removed through specs
- Closed
- is cloned as
-
BDEV-15095 Loading...
- mentioned in
-
Page Loading...