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

New Bamboo releases can fail to start on a plugin developer license due to timezone differences.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Low
    • None
    • 2.6, 3.0
    • None
    • None

    Description

      Bamboo licenses have a maintenance expiry date. Builds newer than the license's maintenance expiry date fail to start.

      Plugin developer licenses set the maintenance limit to 3h in the future. Therefore, builds with a timestamp of >3h in the future fail to start on a plugin developer license. The logic that evaluates whether an instance's maintenance period has expired does not take timezones into account. Therefore, if you build a Bamboo release in Sydney and, within a few hours, attempt to start it in the US on a plugin dev license, you will hit the failure below. We run into this regularly in Studio builds after upgrading Bamboo (because the CI agents are in the US).

      2011-06-01 02:51:20,071 FATAL [main] [BootstrapLoaderListener] An error was encountered while bootstrapping Bamboo (see below): 
      Unable to bootstrap Bamboo: Unable to run pre-bootstrap upgrade tasks as your support period has ended. Please contact Atlassian and https://support.atlassian.com
      java.lang.IllegalStateException: Unable to bootstrap Bamboo: Unable to run pre-bootstrap upgrade tasks as your support period has ended. Please contact Atlassian and https://support.atlassian.com
      	at com.atlassian.bamboo.setup.BootstrapLoaderListener.contextInitialized(BootstrapLoaderListener.java:63)
      	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)
      	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)
      	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
      	at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
      	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
      	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
      	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
      	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
      	at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
      	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
      

      The build timestamp is written to bamboo-api/com.atlassian.bamboo.util.BuildUtils, which is generated at build time.
      The maintenance limit verification logic is in bamboo-license/com.atlassian.bamboo.license.BambooLicenseManagerImpl.isMaintenanceExpiredForBuild().
      One solution would be to update these to be timezone-aware.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rfernandes Robin Fernandes (go/robinleave) (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: