Issue with timezone between nodes, fails to get syncronized.

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. 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 having several nodes in a cluster, one of the nodes doesn't synchronize with the other nodes and doesn't have the same timezone. 

(Auto-migrated image: description temporarily unavailable)
(Auto-migrated image: description temporarily unavailable)
(Auto-migrated image: description temporarily unavailable)

Environment

 Jira Data Center 9.x

Diagnosis

Node two has the current time of 12:24:59 while the other nodes are on 09:22 and 09:18.

In catalina.out log, a Groovy script is called in a post function, changing the timezone for the node.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Attempt to change the default timezone : parameter : sun.util.calendar.ZoneInfo[id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null] : detail : Coordinated Universal Timejava.util.TimeZone.setDefault(TimeZone.java:-1) java_util_TimeZone$setDefault$0.call (Unknown Source) org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139) script_5fa7adbf31539027610be61bb207c5a3.texto(script_5fa7adbf31539027610be61bb207c5a3.groovy:55) jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2) jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:566) org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:149) org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:100) org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55) org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217) org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:240) script_5fa7adbf31539027610be61bb207c5a3.AddITE(script_5fa7adbf31539027610be61bb207c5a3.groovy:28) jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2) jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:566) org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107) org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:149) org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:100) org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55) org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217) org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:249) script_5fa7adbf31539027610be61bb207c5a3.run(script_5fa7adbf31539027610be61bb207c5a3.groovy:20) com.innovalog.groovy.GroovyExpression.eval(GroovyExpression.java:193) com.innovalog.jmwe.plugins.functions.GroovyFunction.executeFunction(GroovyFunction.java:65) com.innovalog.jmwe.plugins.functions.AbstractPreserveChangesPostFunction.execute(AbstractPreserveChangesPostFunction.java:136) com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1014) com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1407) com.opensymphony.workflow.AbstractWorkflow.doAction(AbstractWorkflow.java:557) com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowActionInsideTxn(OSWorkflowManager.java:842) com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowAction(OSWorkflowManager.java:799) com.atlassian.jira.bc.issue.DefaultIssueService.transition(DefaultIssueService.java:537) com.atlassian.jira.web.action.issue.CommentAssignIssue.doExecute(CommentAssignIssue.java:173) webwork.action.ActionSupport.execute(ActionSupport.java:165) com.atlassian.jira.web.action.JiraWebActionSupport.execute(JiraWebActionSupport.java:1364) webwork.interceptor.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:39) webwork.interceptor.NestedInterceptorChain.proceed(NestedInterceptorChain.java:31) webwork.interceptor.ChainedInterceptor.intercept(ChainedInterceptor.java:16) webwork.interceptor.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:35) webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:225) webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:154) com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher.service(JiraWebworkActionDispatcher.java:141)

Cause

For this scenario, it was a plugin that executed a Groovy script in a post function that caused the timezone to change. When an automation transitions an issue com.atlassian.jira.bc.issue.DefaultIssueService.transition(DefaultIssueService.java:537), a post-function from Jira Misc Workflow Extensions, is calling a Groovy script.

1 2 3 4 5 6 7 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:249) script_5fa7adbf31539027610be61bb207c5a3.run(script_5fa7adbf31539027610be61bb207c5a3.groovy:20) com.innovalog.groovy.GroovyExpression.eval(GroovyExpression.java:193) com.innovalog.jmwe.plugins.functions.GroovyFunction.executeFunction(GroovyFunction.java:65) com.innovalog.jmwe.plugins.functions.AbstractPreserveChangesPostFunction.execute(AbstractPreserveChangesPostFunction.java:136) com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1014) com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1407)

Solution

Contact the vendor Jira Misc Workflow Extensions for support, and modify, or remove the script.

Important note - If you don't use Jira Misc Workflow Extensions as a plugin, there might be a chance that you will encounter this issue anyway due to another plugin or custom-written Groovy or Java script.

Updated on March 14, 2025

Still need help?

The Atlassian Community is here for you.