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

Bamboo setup on an unsupported database such as PostgreSQL 9 fails and does not communicate anything

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Medium
    • 9.1.0, 9.0.2
    • 9.0.0
    • Setup Wizard
    • None

    Description

      Issue Summary

      Bamboo setup on an unsupported database such as PostgreSQL 9 fails and does not communicate anything to help the user identify the problem.

      The setup wizard will continue to spin. Upon refreshing the page you will get a 500 Exception related to the OSGI.

      This is reproducible on Data Center:

      Steps to Reproduce

      1. Start a fresh Bamboo 9.0 instance
      2. During setup point it at a PostgreSQL 9.6 instance

      Expected Results

      Database validation fails and the error is communicated to the user in the UI.

      Actual Results

      Setup spins endlessly.
      Refreshing the page leads to this exception:

      com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Unable to create a tracker when osgi is not running
      	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2055)
      	at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
      	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
      	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
      	at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4956)
      	at com.atlassian.bamboo.plugin.osgi.OsgiServiceProxyFactoryImpl.lambda$serviceAccessor$0(OsgiServiceProxyFactoryImpl.java:97)
      	at com.atlassian.bamboo.plugin.osgi.InvocationHandlers$ClassLoaderSwitchingInvocationHandler.invokeServiceMethod(InvocationHandlers.java:68)
      	at com.atlassian.bamboo.plugin.osgi.InvocationHandlers$DynamicServiceInvocationHandler.invoke(InvocationHandlers.java:45)
      	at com.sun.proxy.$Proxy406.canCollectAnalytics(Unknown Source)
      	at com.atlassian.bamboo.DefaultFeatureManager.isPerformanceDataGatheringEnabled(DefaultFeatureManager.java:238)
      	at com.atlassian.bamboo.filter.BambooProfilingFilter.doFilter(BambooProfilingFilter.java:65)
      

      The below same exception can be found in the atlassian-bamboo.log file as well as other clues such as:

      2022-11-04 03:32:51,333 INFO [performSetupDatabaseConnectionBackgroundThread] [DatabaseIsSupported] Testing compatibility of [PostgreSQL] 9.6.0 (9.6.18) using JDBC driver [PostgreSQL JDBC Driver] 42.3.0 (42.3.6) with this version of Bamboo.
      2022-11-04 03:32:51,333 ERROR [performSetupDatabaseConnectionBackgroundThread] [DatabaseIsSupported] Detected POSTGRESQL version [PostgreSQL] 9.6.0 (9.6.18), minimal supported version is 10.0.0
      2022-11-04 03:32:51,333 ERROR [performSetupDatabaseConnectionBackgroundThread] [DatabaseIsSupported] Bamboo doesn't support PostgreSQL version 9.6.18. Please check https://confluence.atlassian.com/display/BAMBOO/Supported+Platforms for more information.
      
      Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.atlassian.bamboo.utils.db.DbmsBean]: Factory method 'createDbmsBean' threw exception; nested exception is java.lang.IllegalStateException: Unsupported version of PostgreSQL: [PostgreSQL] 9.6.0 (9.6.18)
      	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.21.jar:5.3.21]
      	...
      	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.21.jar:5.3.21]
      	at com.atlassian.plugin.spring.SpringHostComponentProviderFactoryBean$SpringHostComponentProvider.provideBeans(SpringHostComponentProviderFactoryBean.java:159) ~[atlassian-plugins-spring-7.0.6.jar:?]
      	at com.atlassian.plugin.spring.SpringHostComponentProviderFactoryBean$SpringHostComponentProvider.provide(SpringHostComponentProviderFactoryBean.java:137) ~[atlassian-plugins-spring-7.0.6.jar:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
      	at org.springframework.beans.factory.config.AbstractFactoryBean$EarlySingletonInvocationHandler.invoke(AbstractFactoryBean.java:275) ~[spring-beans-5.3.21.jar:5.3.21]
      	at com.sun.proxy.$Proxy149.provide(Unknown Source) ~[?:?]
      	at com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager.collectHostComponents(FelixOsgiContainerManager.java:481) ~[atlassian-plugins-osgi-7.0.6.jar:?]
      	at com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager.start(FelixOsgiContainerManager.java:229) ~[atlassian-plugins-osgi-7.0.6.jar:?]
      	at com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager.onStart(FelixOsgiContainerManager.java:197) ~[atlassian-plugins-osgi-7.0.6.jar:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
      	at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:42) ~[atlassian-event-5.0.1.jar:?]
      	... 44 more
      Caused by: java.lang.IllegalStateException: Unsupported version of PostgreSQL: [PostgreSQL] 9.6.0 (9.6.18)
      	at com.atlassian.bamboo.hibernate.DialectSelector.selectPostgresDialect(DialectSelector.java:66) ~[atlassian-bamboo-persistence-9.0.1.jar:?]
      	at com.atlassian.bamboo.hibernate.DialectSelector.getDialectClass(DialectSelector.java:53) ~[atlassian-bamboo-persistence-9.0.1.jar:?]
      	at com.atlassian.bamboo.hibernate.DialectSelector.getDialect(DialectSelector.java:24) ~[atlassian-bamboo-persistence-9.0.1.jar:?]
      	at com.atlassian.bamboo.hibernate.DialectSelector.getDialect(DialectSelector.java:33) ~[atlassian-bamboo-persistence-9.0.1.jar:?]
      	at com.atlassian.bamboo.hibernate.BambooHibernateConfig.getHibernateProperties(BambooHibernateConfig.java:62) ~[atlassian-bamboo-persistence-9.0.1.jar:?]
      	at com.atlassian.bamboo.utils.db.DbmsBeanFactoryImpl.createDbmsBean(DbmsBeanFactoryImpl.java:25) ~[atlassian-bamboo-persistence-9.0.1.jar:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
      	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.21.jar:5.3.21]
      	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.21.jar:5.3.21]
      	at com.atlassian.plugin.spring.SpringHostComponentProviderFactoryBean$SpringHostComponentProvider.provideBeans(SpringHostComponentProviderFactoryBean.java:159) ~[atlassian-plugins-spring-7.0.6.jar:?]
      	at com.atlassian.plugin.spring.SpringHostComponentProviderFactoryBean$SpringHostComponentProvider.provide(SpringHostComponentProviderFactoryBean.java:137) ~[atlassian-plugins-spring-7.0.6.jar:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
      	at org.springframework.beans.factory.config.AbstractFactoryBean$EarlySingletonInvocationHandler.invoke(AbstractFactoryBean.java:275) ~[spring-beans-5.3.21.jar:5.3.21]
      	at com.sun.proxy.$Proxy149.provide(Unknown Source) ~[?:?]
      	at com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager.collectHostComponents(FelixOsgiContainerManager.java:481) ~[atlassian-plugins-osgi-7.0.6.jar:?]
      	at com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager.start(FelixOsgiContainerManager.java:229) ~[atlassian-plugins-osgi-7.0.6.jar:?]
      	at com.atlassian.plugin.osgi.container.felix.FelixOsgiContainerManager.onStart(FelixOsgiContainerManager.java:197) ~[atlassian-plugins-osgi-7.0.6.jar:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
      	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
      	at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:42) ~[atlassian-event-5.0.1.jar:?]
      	... 44 more
      

      Workaround

      None, you'll need to reinstall Bamboo using a supported database platform:

      Attachments

        Issue Links

          Activity

            People

              achystoprudov Alexey Chystoprudov
              jowen@atlassian.com Jeremy Owen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: