Your shared Bamboo configuration version is too old comparing to local node Bamboo version
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
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
When upgrading Bamboo to version 8.0 or higher, the application will not start.
Environment
Upgrading Bamboo to version 8.0+.
Diagnosis
The following error message can be seen in the logs (atlassian-bamboo.log) right after Bamboo is started.
2021-09-17 15:41:25,515 INFO [localhost-startStop-1] [lifecycle] * Bamboo is starting up *
2021-09-17 15:41:25,515 INFO [localhost-startStop-1] [lifecycle] *******************************
[...]
2021-09-17 15:41:26,858 ERROR [localhost-startStop-1] [DefaultAtlassianBootstrapManager] Home is not configured properly:
com.atlassian.config.ConfigurationException: Your shared Bamboo configuration (/bamboo-home/xml-data/configuration) version (60805) is too old comparing to local node Bamboo version (70212). Shared home Bamboo version expected to be equal or greater than local Bamboo node version.
at com.atlassian.bamboo.setup.DefaultBootstrapManager.afterConfigurationLoaded(DefaultBootstrapManager.java:132)
at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:75)
at com.atlassian.bamboo.setup.BootstrapLoaderListener.contextInitialized(BootstrapLoaderListener.java:155)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4705)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5171)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1412)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1402)
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 java.lang.Thread.run(Thread.java:748)
2021-09-17 15:41:26,860 INFO [localhost-startStop-1] [lifecycle] Bamboo home directory: /bamboo-home
2021-09-17 15:41:26,860 INFO [localhost-startStop-1] [lifecycle] Default charset: UTF-8, file name ecoding: UTF-8
2021-09-17 15:41:26,869 INFO [localhost-startStop-1] [UpgradeLauncher] Upgrades not performed since the application has not been set up yet.
In the UI, you'll see a long error related to FreeMarker templates, which is thrown because Bamboo couldn't startup properly due to the error above.
io.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointerException
at io.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:156)
at io.atlassian.util.concurrent.LazyReference.get(LazyReference.java:116)
at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.renderNoCache(BambooFreemarkerManagerSoyHelpers.java:98)
at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.render(BambooFreemarkerManagerSoyHelpers.java:88)
at com.atlassian.bamboo.ww2.BambooFreemarkerManagerSoyHelpers$SoyHelper.render(BambooFreemarkerManagerSoyHelpers.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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)
[...]
Caused by: java.lang.NullPointerException
at com.atlassian.bamboo.ww2.BambooFreemarkerManager$1.get(BambooFreemarkerManager.java:127)
at com.atlassian.bamboo.ww2.BambooFreemarkerManager$1.get(BambooFreemarkerManager.java:124)
at io.atlassian.util.concurrent.Lazy$Strong.create(Lazy.java:98)
at io.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:332)
at io.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:150)
... 112 more
Cause
Starting Bamboo 8, a new file was introduced to the home folder, called bamboo-shared.cfg.xml. It contains the application's build number:
<?xml version="1.0" encoding="UTF-8"?><application-configuration>
<properties>
<property name="build-number">80009</property>
</properties>
</application-configuration>
One of the upgrade tasks checks if the new local home is using an older shared home. If, by any reason, that file gets corrupted and shows an older build number than your current one, the upgrade will fail.
E.g., if your current version is 7.2.5 (build 70212), but the file refers to the build number as 60805 (Bamboo 6.8.1), once you try to upgrade to Bamboo 8.0+, it will not match the above criteria and the upgrade will fail.
Solution
Simply update the file and replace the build number with the new one (which you can get from the error in the logs).
- Stop Bamboo.
Make a backup and then edit the <bamboo-home>/xml-data/configuration/bamboo-shared.cfg.xml file, changing the build number to the one pointed by the error message, at the following property:
<property name="build-number">80009</property>
The file should then look like this:
Example<?xml version="1.0" encoding="UTF-8"?> <application-configuration> <properties> <property name="build-number">80009</property> </properties> </application-configuration>
Delete everything inside the following folders (but not the folders themselves):
<bamboo-home>/caches/ <bamboo-home>/temp/ <bamboo-home>/index/ <bamboo-home>/jms-store/
- Start Bamboo.
That's it!