Uploaded image for project: 'Bamboo Data Center'
  1. Bamboo Data Center
  2. BAM-19782

Deleting an artifact definition from a build plan will corrupt any linked deployment plans with artifact download tasks

      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

      1. Setup a build plan with 2 shared artifact definitions
      2. Create a deployment project linked to this build plan
      3. Add an environment with an artifact download task
      4. Build the source build plan
      5. Delete one of the artifact definitions
      6. 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

      1. 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.
      2. 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.

            [BAM-19782] Deleting an artifact definition from a build plan will corrupt any linked deployment plans with artifact download tasks

            Aaron Brown made changes -
            Remote Link Original: This issue links to "BDEV-15095 (Jira)" [ 405373 ] New: This issue links to "BDEV-15095 (Hello Jira)" [ 405373 ]
            Zuzanna Struczewska made changes -
            Remote Link New: This issue links to "Page (Confluence)" [ 706521 ]
            Alexey Chystoprudov made changes -
            Comment [ A comment with security level 'atlassian-staff' was removed. ]
            Alexey Chystoprudov made changes -
            Comment [ A comment with security level 'atlassian-staff' was removed. ]
            Alexey Chystoprudov made changes -
            Comment [ A comment with security level 'atlassian-staff' was removed. ]
            Muhammad Naveed made changes -
            Comment [ It is a website that has a forum about deleting an artifact definition from a build. They have a plan that will corrupt any linked deployment plans with artifact download tasks. You must get [help to write a research paper|https://www.essaywritingland.com/research-paper-writing-help/] for the students to manage their college work. You can easily download it from the given links. Join it for more details. ]
            Alexey Chystoprudov made changes -
            Comment [ Artifact download has been given here for customers. We can download this in a better way from this blog. You can get [top essay writing services|https://bestonlinewritingservice.com/best-essay-writing-services/] to manage thesis assignments easily. Deleting an artifact means removing data completely about this app. A plan can be built keeping necessary information in mind. ]
            Monique Khairuliana (Inactive) made changes -
            Workflow Original: Bamboo Workflow 2016 v1 - Restricted [ 2647093 ] New: JAC Bug Workflow v3 [ 3386186 ]
            Status Original: Resolved [ 5 ] New: Closed [ 6 ]
            Marcin Gardias made changes -
            Resolution New: Duplicate [ 3 ]
            Status Original: Open [ 1 ] New: Resolved [ 5 ]
            Marcin Gardias made changes -
            Link New: This issue duplicates BAM-19948 [ BAM-19948 ]

              mgardias Marcin Gardias
              jowen@atlassian.com Jeremy Owen
              Affected customers:
              5 This affects my team
              Watchers:
              22 Start watching this issue

                Created:
                Updated:
                Resolved: