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

Accessing linked repositories configured to plans throws "Could not find ACL." (when the linked repository was deleted)

XMLWordPrintable

      Issue Summary

      When plans refer to Linked/Project repositories and the linked repository is deleted, entries from the ACL tables( acl_object_identity,acl_entry) will be deleted but not from the plan_vcs_history table. The repository is still shown in the plan configuration > Repositories tab. When we access those by clicking on Linked repositories/Project repositories, this issue occurs and throws this error: "Could not find ACL."
      1.
      2.
      3.

      Steps to Reproduce

      1. Create a Linked/Project repository
      2. Create a plan with the above created repository
      3. Delete the linked repository now and wait for some time so that it gets deleted.
      4. Access the repository from the Plan configuration > Repositories tab

      Expected Results

      Bamboo will not remove the repositories under the plan configuration because of having build results with commits linked to that repository. This is expected behaviour.

      However, Bamboo should handle this in a pleasant way when users access the repositories tab under plan configuration and shouldn't throw an error like "Could not find ACL."

      Actual Results

      Bamboo allows users to access the deleted/inactive linked/project repositories even though they are marked_for_deltion as true in vcs_location table and throws below error when we click on the linked/project repositories link:

      The below exception is thrown in the atlassian-bamboo.log file:

      2025-04-03 13:41:45,734 WARN [http-nio-8085-exec-579] [BambooRuntimeExceptionMapper] Unexpected error from REST call
      org.acegisecurity.acls.NotFoundException: Could not find ACL
      	at com.atlassian.bamboo.security.acegi.acls.HibernateMutableAclServiceImpl.readMutableAclById(HibernateMutableAclServiceImpl.java:183) ~[atlassian-bamboo-core-9.6.7.jar:?]
      	at jdk.internal.reflect.GeneratedMethodAccessor4361.invoke(Unknown Source) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.3.39-atlassian-1.jar:5.3.39-atlassian-1]
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.3.39-atlassian-1.jar:5.3.39-atlassian-1]
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.39-atlassian-1.jar:5.3.39-atlassian-1]
      	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.39-atlassian-1.jar:5.3.39-atlassian-1]
      	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.39-atlassian-1.jar:5.3.39-atlassian-1]
      	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.39-atlassian-1.jar:5.3.39-atlassian-1]
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.39-atlassian-1.jar:5.3.39-atlassian-1]
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241) ~[spring-aop-5.3.39-atlassian-1.jar:5.3.39-atlassian-1]
      	at com.sun.proxy.$Proxy175.readMutableAclById(Unknown Source) ~[?:?]
      	at com.atlassian.bamboo.repository.DefaultRepositoryPermissionsService.getAclForRepository(DefaultRepositoryPermissionsService.java:87) ~[atlassian-bamboo-core-9.6.7.jar:?]
      	at com.atlassian.bamboo.repository.DefaultRepositoryPermissionsService.listGroupsWithPermissionsForRepository(DefaultRepositoryPermissionsService.java:154) ~[atlassian-bamboo-core-9.6.7.jar:?]
      	at jdk.internal.reflect.GeneratedMethodAccessor6607.invoke(Unknown Source) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
      ........
      

      Workaround

      As of now, the workaround is to remove any references to the deleted repository from the Plans and create a new linked repository with the same configuration in case you want that repository in the plan.

      Or else delete the repositories under plan configuration if you dont require those repositories in the plan anymore.

      Reach out to Atlassian support in case of any doubts on how to perform this action for detailed steps.

              mgardias Marcin Gardias
              dac6e1c9d0b2 Jyothi Charupalli
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: