My company (CSG Systems) operates a self-hosted, 1000 user BitBucket server that we're preparing to upgrade. It has many repositories that are actively mirrored to svn using the SVN Mirror for Bitbucket Server add-on.
I'm testing the upgrade from 4.14.5 to 5.8.1 using a VirtualBox VM running CentOS 6.9. I set up the test system using evaluation licenses for BitBucket and the Subgit SVN mirror plugin (3.4.1).
Starting with a 4.14.5 system with a few repos setup, one of which is mirrored to svn, I upgrade to 5.8.1 using the .bin installer. Afterward the system comes up OK and the repos look good. But when I go to the Manage add-ons admin page, I see an alert box with the message "The datetime zone id 'SystemV/CST6' is not recognised" with a progress spinner that never stops. I know the plugins are expected to come up disabled but I expected to see the subgit mirror plugin listed on the admin page. But that never gets populated.
The 3.4.1 subgit mirror is supposed to be compatible with BitBucket 5.8.1 so I'm hoping for a seamless re-enabling of the plugin, but can't do that since the admin page doesn't show it. How might I get this working?
The exception appears in <bitbucket_home>/log/atlassian-bitbucket.log with a stack trace that to my eyes seems to indicate it's failing to communicate with the market place:
2018-03-16 12:43:30,285 ERROR [http-nio-7990-exec-7] sops01 @87EEPBx763x54x3 1t9u4rl 10.0.2.2 "GET /rest/plugins/1.0/installed-marketplace HTTP/1.1" c.a.p.r.c.e.j.ThrowableExceptionMapper Uncaught exception thrown by REST service: The datetime zone id 'SystemV/CST6' is not recognised
java.lang.IllegalArgumentException: The datetime zone id 'SystemV/CST6' is not recognised
at org.joda.time.DateTimeZone.forTimeZone(DateTimeZone.java:374)
at com.atlassian.upm.license.internal.BitbucketLicenseDateFormatter.getUserTimeZone(BitbucketLicenseDateFormatter.java:20)
at com.atlassian.upm.license.internal.impl.DefaultLicenseDateFormatter.formatInternal(DefaultLicenseDateFormatter.java:35)
at com.atlassian.upm.license.internal.impl.DefaultLicenseDateFormatter.formatDate(DefaultLicenseDateFormatter.java:28)
at com.atlassian.upm.license.internal.HostApplicationLicenseAttributes$2.apply(HostApplicationLicenseAttributes.java:169)
at com.atlassian.upm.license.internal.HostApplicationLicenseAttributes$2.apply(HostApplicationLicenseAttributes.java:165)
at com.google.common.base.Functions$FunctionComposition.apply(Functions.java:216)
at com.atlassian.upm.api.util.Option$Some.fold(Option.java:314)
at com.atlassian.upm.api.util.Option.flatMap(Option.java:117)
at com.atlassian.upm.api.util.Option.map(Option.java:105)
at com.atlassian.upm.license.internal.HostApplicationLicenseAttributes.getExpiryDateString(HostApplicationLicenseAttributes.java:164)
at com.atlassian.upm.rest.representations.HostLicenseDetailsRepresentation.<init>(HostLicenseDetailsRepresentation.java:57)
at com.atlassian.upm.rest.representations.UpmRepresentationFactoryImpl.createHostLicenseRepresentation(UpmRepresentationFactoryImpl.java:599)
at com.atlassian.upm.rest.representations.UpmRepresentationFactoryImpl.createHostStatusRepresentation(UpmRepresentationFactoryImpl.java:593)
at com.atlassian.upm.rest.representations.UpmRepresentationFactoryImpl.createInstalledMarketplacePluginCollectionRepresentation(UpmRepresentationFactoryImpl.java:240)
at com.atlassian.upm.rest.resources.InstalledMarketplacePluginCollectionResource.get(InstalledMarketplacePluginCollectionResource.java:143)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:24)
at com.atlassian.analytics.client.filter.UniversalAnalyticsFilter.doFilter(UniversalAnalyticsFilter.java:92)
at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:39)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:81)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.stash.internal.spring.security.StashAuthenticationFilter.doFilter(StashAuthenticationFilter.java:85)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doInsideSpringSecurityChain(BeforeLoginPluginAuthenticationFilter.java:112)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:75)
at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:94)
at com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:67)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.plugin.connect.plugin.auth.oauth2.DefaultSalAuthenticationFilter.doFilter(DefaultSalAuthenticationFilter.java:69)
at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:109)
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
at com.atlassian.analytics.client.filter.DefaultAnalyticsFilter.doFilter(DefaultAnalyticsFilter.java:38)
at com.atlassian.analytics.client.filter.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:39)
at com.atlassian.stash.internal.spring.lifecycle.LifecycleJohnsonServletFilterModuleContainerFilter.doFilter(LifecycleJohnsonServletFilterModuleContainerFilter.java:42)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doBeforeBeforeLoginFilters(BeforeLoginPluginAuthenticationFilter.java:90)
at com.atlassian.stash.internal.web.auth.BeforeLoginPluginAuthenticationFilter.doFilter(BeforeLoginPluginAuthenticationFilter.java:73)
at com.atlassian.stash.internal.request.DefaultRequestManager.doAsRequest(DefaultRequestManager.java:89)
at com.atlassian.stash.internal.hazelcast.ConfigurableWebFilter.doFilter(ConfigurableWebFilter.java:38)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.lang.Thread.run(Thread.java:748)
... 239 frames trimmed
The timezone in the user profile was set to CST6. Updating it to be Chicago Central Time fixed the problem. The subgit mirror add-on then appeared on the Manage Add-Ons admin page and was easily re-enabled.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.