Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-14426

Setting OS and Bitbucket's timezone to Europe/Kyiv results in Bitbucket crash and UPM errors

XMLWordPrintable

      Issue Summary

      Bitbucket 8.9.4 has two timezones possible for Ukraine, Europe/Kyiv and Europe/Kiev to be set while on UI. If Bitbucket is running with PostgreSQL 12, Bitbucket is not able to be started with below errors as PostgreSQL only released a fix to accept Kyiv on PostgreSQL 15. The only way to start Bitbucket without this error is setting below JVM ARGS. However, we are still affected by the bug on Universal Plugin Manager as could be seen below:

      JVM_SUPPORT_RECOMMENDED_ARGS="-Duser.timezone=Europe/Kiev"
      

      Note: That errors are encountered if Bitbucket and OS are both set to Europe/Kyiv.

      UPM Errors:

      • Page doesn't load and customers are not able to Manage Apps or Search for it on the Marketplace.

      This is reproducible on Data Center: yes

      Steps to Reproduce

      1. Set OS timezone to Europe/Kyiv
      2. Set Bitbucket's Timezone to Kyiv
      3. Restart Bitbucket (it will fail to start in PostgreSQL 12 and on 15 Bitbucket won't fail to start because of the fix mentioned previously, but it will still cause issues to UPM)

      Expected Results

      • Bitbucket working as expected and no issues with UPM

      Actual Results

      • Bitbucket crashes while on PostgreSQL 12 and JVM ARGS is required as a workaround, but UPM fails. On PostgreSQL 15, only UPM fails.

      The below exception is thrown in the atlassian-bitbucket.log file for PostgreSQL 12:

      2023-09-04 22:11:49,117 ERROR [spring-startup] com.zaxxer.hikari.pool.HikariPool bitbucket - Exception during pool initialization.
      org.postgresql.util.PSQLException: FATAL: invalid value for parameter "TimeZone": "Europe/Kyiv"
      	at org.postgresql.Driver$ConnectThread.getResult(Driver.java:394)
      	at org.postgresql.Driver.connect(Driver.java:304)
      	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
      	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364)
      	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
      	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476)
      	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
      	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
      	at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
      	at com.atlassian.stash.internal.hikari.ExtendedHikariDataSource.<init>(ExtendedHikariDataSource.java:49)
      	at com.atlassian.stash.internal.hikari.HikariDataSourceFactory.create(HikariDataSourceFactory.java:70)
      	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:258)
      	at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:764)
      	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:567)
      	at javax.servlet.GenericServlet.init(GenericServlet.java:143)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      	... 90 frames trimmed
      

      The below exception is thrown in the atlassian-bitbucket.log file for PostgreSQL 15:

      Caused by: java.lang.IllegalArgumentException: The datetime zone id 'Europe/Kyiv' is not recognised
      java.lang.RuntimeException: The datetime zone id 'Europe/Kyiv' is not recognised. Listener: com.atlassian.diagnostics.internal.analytics.DailyAlertAnalyticsJob event: com.atlassian.plugin.event.events.PluginFrameworkStartedEvent
      Caused by: java.lang.IllegalArgumentException: The datetime zone id 'Europe/Kyiv' is not recognised
      

      Workaround

      Add JVM ARGS: JVM_SUPPORT_RECOMMENDED_ARGS="-Duser.timezone=Europe/Kiev"

      But currently, no workaround to UPM (Confluence had the issue for the same customer and upgrading to the latest version worked, but the UPM version was 6.1.3 - https://jira.atlassian.com/browse/CONFSERVER-90539):
      Bitbucket 8.9.4 = The Universal Plugin Manager (v6.0.9) by Atlassian
      Bitbucket 8.13 = The Universal Plugin Manager (v6.0.9) by Atlassian

              Unassigned Unassigned
              13a66df57723 Victor Menes
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: