Expiry and Notifications in Bamboo 6.8.0 can fail with LazyInitializationException

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Low
    • 6.8.1
    • Affects Version/s: 6.8.0
    • Component/s: Expiry
    • None
    • Severity 2 - Major

      Issue Summary

      Expiry and Notifications in Bamboo 6.8.0 can fail with LazyInitializationException

      Steps to Reproduce

      There are unknown data conditions around pre-existing variable data. It doesn't affect all instances

      1. Enable scheduled global expiry or manually run expiry

      Expected Results

      Expiry completes.

      Actual Results

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

      2019-11-15 00:00:38,491 INFO [scheduler_Worker-4] [JobRunShell] Job ExpiryGroup.ExpiryJob threw a JobExecutionException: 
      org.quartz.JobExecutionException: java.util.concurrent.ExecutionException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.atlassian.bamboo.variable.baseline.VariableContextBaselineImpl.variables, could not initialize proxy - no Session [See nested exception: java.util.concurrent.ExecutionException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.atlassian.bamboo.variable.baseline.VariableContextBaselineImpl.variables, could not initialize proxy - no Session]
      	at com.atlassian.bamboo.build.expiry.ExpirySchedulerImpl$ExpiryJob.execute(ExpirySchedulerImpl.java:139)
      	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
      	at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48)
      	at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26)
      	at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17)
      	at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41)
      	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
      Caused by: java.util.concurrent.ExecutionException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.atlassian.bamboo.variable.baseline.VariableContextBaselineImpl.variables, could not initialize proxy - no Session
      	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
      	at com.atlassian.bamboo.build.expiry.ExpirySchedulerImpl$ExpiryJob.execute(ExpirySchedulerImpl.java:123)
      	... 6 more
      Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.atlassian.bamboo.variable.baseline.VariableContextBaselineImpl.variables, could not initialize proxy - no Session
      	at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:597)
      	at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:216)
      	at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:576)
      	at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:147)
      	at org.hibernate.collection.internal.PersistentBag.toArray(PersistentBag.java:309)
      	at com.google.common.collect.Iterables.toArray(Iterables.java:328)
      	at com.google.common.collect.Ordering.immutableSortedCopy(Ordering.java:842)
      	at com.atlassian.bamboo.variable.baseline.VariableContextBaselineImpl.getVariables(VariableContextBaselineImpl.java:89)
      	at com.atlassian.bamboo.deployments.versions.DeploymentVersionImpl.<init>(DeploymentVersionImpl.java:48)
      	at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl.getDeploymentVersion(DeploymentVersionServiceImpl.java:927)
      	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
      	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
      	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
      	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
      	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
      	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
      	at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionServiceImpl.findVersionsBetween(DeploymentVersionServiceImpl.java:739)
      	at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionLinkedJiraIssuesServiceImpl.compareVersionsByJiraIssues(DeploymentVersionLinkedJiraIssuesServiceImpl.java:146)
      	at com.atlassian.bamboo.deployments.versions.service.DeploymentVersionLinkedJiraIssuesServiceImpl.getIssuesChangedForDeploymentResult(DeploymentVersionLinkedJiraIssuesServiceImpl.java:133)
      	at com.atlassian.bamboo.deployments.results.service.DeploymentResultDeletionServiceImpl.delete(DeploymentResultDeletionServiceImpl.java:77)
      	at sun.reflect.GeneratedMethodAccessor4348.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:343)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
      	at com.atlassian.bamboo.security.acegi.intercept.aopalliance.AuthorityOverrideMethodSecurityInterceptor.invoke(AuthorityOverrideMethodSecurityInterceptor.java:24)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
      	at com.sun.proxy.$Proxy312.delete(Unknown Source)
      	at com.atlassian.bamboo.deployments.expiry.DeploymentExpiryServiceImpl.expireDeploymentResult(DeploymentExpiryServiceImpl.java:309)
      	at com.atlassian.bamboo.deployments.expiry.DeploymentExpiryServiceImpl.expireDeploymentProject(DeploymentExpiryServiceImpl.java:222)
      	at com.atlassian.bamboo.deployments.expiry.DeploymentExpiryServiceImpl.lambda$triggerDeploymentsExpiration$0(DeploymentExpiryServiceImpl.java:112)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:48)
      	at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:26)
      	at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:17)
      	at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:41)
      	at java.lang.Thread.run(Thread.java:748)
      

      Workaround

      None

              Assignee:
              Marcin Gardias
              Reporter:
              Jeremy Owen
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: