Your shared Bamboo configuration version is too old comparing to local node Bamboo version

Still need help?

The Atlassian Community is here for you.

Ask the community

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:

bamboo-shared.cfg.xml example
<?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).

  1. Stop Bamboo.
  2. 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> 
  3. 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> 
  4. Delete everything inside the following folders (but not the folders themselves):

    <bamboo-home>/caches/
    <bamboo-home>/temp/
    <bamboo-home>/index/
    <bamboo-home>/jms-store/
  5. Start Bamboo.

That's it!

Last modified on Nov 16, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.