Bamboo throws Timeout exceeded waiting for service when accessing the UI
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
After migrating Bamboo from one server to another, the Bamboo interface does not load correctly and shows the "Timeout exceeded waiting for service - com.atlassian.soy.renderer.SoyTemplateRenderer" error.
Diagnosis
During the Bamboo startup, we can see at the atlassian-bamboo.log file errors indicating that some required plugins are failing to start.
1
2
com.atlassian.bamboo.plugin.osgi.OsgiServiceProxyFactoryImpl$ServiceTimeoutExceeded: Timeout exceeded waiting for service - com.atlassian.soy.renderer.SoyTemplateRenderer at com.atlassian.bamboo.plugin.osgi.OsgiServiceProxyFactoryImpl.lambda$serviceAccessor$0(OsgiServiceProxyFactoryImpl.java:118) at com.atlassian.bamboo.plugin.osgi.InvocationHandlers$SameClassLoaderInvocationHandler.invokeServiceMethod(InvocationHandlers.java:106) at com.atlassian.bamboo.plugin.osgi.InvocationHandlers$DynamicServiceInvocationHandler.invoke(InvocationHandlers.java:54) at com.sun.proxy.$Proxy507.render(Unknown Source) at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.renderNoCache(BambooFreemarkerManagerSoyHelpers.java:117) at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.render(BambooFreemarkerManagerSoyHelpers.java:104) at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.render(BambooFreemarkerManagerSoyHelpers.java:91) at sun.reflect.GeneratedMethodAccessor407.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1459) at freemarker.ext.beans.ReflectionCallableMemberDescriptor.invokeMethod(ReflectionCallableMemberDescriptor.java:56) at freemarker.ext.beans.MemberAndArguments.invokeMethod(MemberAndArguments.java:51) at freemarker.ext.beans.OverloadedMethodsModel.exec(OverloadedMethodsModel.java:63) at freemarker.core.MethodCall._eval(MethodCall.java:76) at freemarker.core.Expression.eval(Expression.java:81) at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:96) at freemarker.core.DollarVariable.accept(DollarVariable.java:59) at freemarker.core.Environment.visit(Environment.java:326) at freemarker.core.Environment.visit(Environment.java:332) at freemarker.core.Environment.visit(Environment.java:332) at freemarker.core.Environment.include(Environment.java:2505) at freemarker.core.Include.accept(Include.java:171) at freemarker.core.Environment.visit(Environment.java:326) at freemarker.core.Environment.visit(Environment.java:368) at freemarker.core.Environment.invoke(Environment.java:714) at freemarker.core.UnifiedCall.accept(UnifiedCall.java:86) at freemarker.core.Environment.visit(Environment.java:326) at freemarker.core.Environment.visit(Environment.java:332) at freemarker.core.Environment.process(Environment.java:305) at freemarker.template.Template.process(Template.java:384) at com.atlassian.bamboo.ww2.FreemarkerRequestDispatcherPageFilter.applyDecorator(FreemarkerRequestDispatcherPageFilter.java:134) at org.apache.struts2.sitemesh.TemplatePageFilter.applyDecorator(TemplatePageFilter.java:116) at com.atlassian.bamboo.ww2.FreemarkerRequestDispatcherPageFilter.access$200(FreemarkerRequestDispatcherPageFilter.java:46) at com.atlassian.bamboo.ww2.FreemarkerRequestDispatcherPageFilter$BambooSitemeshDecorator.render(FreemarkerRequestDispatcherPageFilter.java:275) at
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2020-12-07 06:18:48,151 ERROR [ThreadPoolAsyncTaskExecutor::Thread 18] [OsgiPlugin] Unable to start the plugin container for plugin 'com.atlassian.bamboo.brokenbuildtracker'
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from URL [bundle://29.0:0/META-INF/spring/spring-scanner.xml]; nested exception is java.lang.IllegalStateException: Cannot execute atlassian-spring-scanner-runtime: plugin has an extra copy of atlassian-spring-scanner-annotation classes, perhaps embedded inside the target plugin 'com.atlassian.bamboo.plugins.brokenbuildtracker.atlassian-bamboo-plugin-brokenbuildtracker'; embedding scanner-annotations is not supported since scanner version 2.0. Use 'mvn dependency:tree' and ensure the atlassian-spring-scanner-annotation dependency in your plugin has <scope>provided</scope>, not 'runtime' or 'compile', and you have NO dependency on atlassian-spring-scanner-runtime.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:414)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at org.eclipse.gemini.blueprint.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:170)
at org.eclipse.gemini.blueprint.context.support.OsgiBundleXmlApplicationContext.loadBeanDefinitions(OsgiBundleXmlApplicationContext.java:140)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:604)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$800(AbstractDelegatedExecutionApplicationContext.java:60)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$3.run(AbstractDelegatedExecutionApplicationContext.java:242)
at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.startRefresh(AbstractDelegatedExecutionApplicationContext.java:220)
at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplicationContextExecutor.java:224)
at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:177)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:157)
at org.eclipse.gemini.blueprint.extender.internal.activator.LifecycleManager$1.run(LifecycleManager.java:207)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalStateException: Cannot execute atlassian-spring-scanner-runtime: plugin has an extra copy of atlassian-spring-scanner-annotation classes, perhaps embedded inside the target plugin 'com.atlassian.bamboo.plugins.brokenbuildtracker.atlassian-bamboo-plugin-brokenbuildtracker'; embedding scanner-annotations is not supported since scanner version 2.0. Use 'mvn dependency:tree' and ensure the atlassian-spring-scanner-annotation dependency in your plugin has <scope>provided</scope>, not 'runtime' or 'compile', and you have NO dependency on atlassian-spring-scanner-runtime.
at com.atlassian.plugin.spring.scanner.runtime.impl.AtlassianScannerBeanDefinitionParser.checkScannerRuntimeIsNotEmbeddedInBundle(AtlassianScannerBeanDefinitionParser.java:198)
at com.atlassian.plugin.spring.scanner.runtime.impl.AtlassianScannerBeanDefinitionParser.parse(AtlassianScannerBeanDefinitionParser.java:60)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1411)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1401)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:168)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:138)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:94)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:508)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:392)
... 20 more
Cause
Bamboo caches might have been corrupted during the migration.
Solution
Force Bamboo caches files to be rebuilt by cleaning them manually:
Stop Bamboo
Delete the content from the following folders:
1
2
3
4
/bamboo-home/caches/
/bamboo-home/temp/
/bamboo-home/index/
/bamboo-home/jms-store/
3. Start Bamboo
Was this helpful?